Показать полную графическую версию : [решено] Синхронизация потоков (C#)
Здравствуйте! Возник такой вот вопрос! Есть форма, есть поток! Как в поток передать данные из одного из контролов на форме?Помогите пожалуйста!
Delirium
09-08-2010, 09:56
Что значит "передать данные в поток"? Что конкретно необходимо сделать? В чем загвоздка?
Ну например, есть на форме некий текстбокс, в нем данные, эти данные нужно передать в поток, чтобы в дальнейшем работать в потоке с ними!
все, разобрался сам :) спасибо за помощь!
Delirium
11-08-2010, 19:41
LilLoco, ну помощи в данной ситуации от нас никакой не было, но обращайтесь, чем сможем, поможем :)
все, разобрался сам »А вот я к примеру не разобрался, ответ было бы не плохо дать, а то тема решена, а решение отсутствует. Непорядок. ;)
Извиняюсь %) Сейчас исправлюсь :wink: :
Объявляем делегат
private delegate string GetTextDelegate();
далее описываем саму функцию
private string GetText()
{
string strText = comboBox.Text;
return strText;
}
Здесь описываем метод обращения к элементу,(в данном случае комбобокс)
private string GetTextFunc()
{
string strText;
if (comboBox.InvokeRequired)
{
GetTextDelegate GTD = new GetTextDelegate(GetText);
strText = Convert.ToString(comboBox.Invoke(GTD));
}
else
{
strText = comboBox.Text;
}
return strText;
}
Далее пишем функцию самого потока(банальный пример конечно, но все же:)))
private void thFunc()
{
int counter = 0;
string text;
while(true)
{
text = GetTextFunc();
MessageBox.Show(text + "__________" + counter.ToString());
counter ++;
thread.sleep(1000);
}
}
Ну и запускаем сам поток
Thread thGo = new Thread(new ThreadStart(thFunc));
thGo.Start();
Вот и все, вроде бы нигде не ошибся, и все должно работать %)
Еще раз приношу свои извинения за невыложенный пример :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.