.NET - [решено] Синхронизация потоков (C#)

Ответить
Аватара пользователя
LilLoco

.NET - [решено] Синхронизация потоков (C#)

Сообщение LilLoco »

Здравствуйте! Возник такой вот вопрос! Есть форма, есть поток! Как в поток передать данные из одного из контролов на форме?Помогите пожалуйста!
Аватара пользователя
Delirium

Re: .NET - [решено] Синхронизация потоков (C#)

Сообщение Delirium »

Что значит "передать данные в поток"? Что конкретно необходимо сделать? В чем загвоздка?
Аватара пользователя
LilLoco

Re: .NET - [решено] Синхронизация потоков (C#)

Сообщение LilLoco »

Ну например, есть на форме некий текстбокс, в нем данные, эти данные нужно передать в поток, чтобы в дальнейшем работать в потоке с ними!
Аватара пользователя
LilLoco

Re: .NET - [решено] Синхронизация потоков (C#)

Сообщение LilLoco »

все, разобрался сам Изображение спасибо за помощь!
Аватара пользователя
Delirium

Re: .NET - [решено] Синхронизация потоков (C#)

Сообщение Delirium »

LilLoco, ну помощи в данной ситуации от нас никакой не было, но обращайтесь, чем сможем, поможем Изображение
Аватара пользователя
Drongo

Re: .NET - [решено] Синхронизация потоков (C#)

Сообщение Drongo »

Цитата LilLoco:



все, разобрался сам
.NET - [решено] Синхронизация потоков (C#)




А вот я к примеру не разобрался, ответ было бы не плохо дать, а то тема решена, а решение отсутствует. Непорядок. Изображение
Аватара пользователя
LilLoco

Re: .NET - [решено] Синхронизация потоков (C#)

Сообщение LilLoco »

Извиняюсь %) Сейчас исправлюсь Изображение :



Объявляем делегат



Код:

Код: Выделить всё

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();

Вот и все, вроде бы нигде не ошибся, и все должно работать %)

Еще раз приношу свои извинения за невыложенный пример Изображение
Ответить

Вернуться в «Программирование и базы данных»