Вывод в контрол из отдельного потока?
От: alexparser  
Дата: 11.01.11 23:35
Оценка:
Доброго времени!

Пишу аппу на C# для вывода записей в листваю из базы.
Записи заливаю в контрол из главного потока, по понятной причине прогрессбар естественно не реагирует, да и листвью тоже((
Хочу сделать все грамотно, киньте плиз пример как работать с контролами из отдельного потока аля треда..

Очень желательно короткий и лаконичный примерчик.

Большие спасибки...
Re: Вывод в контрол из отдельного потока?
От: MxMsk Португалия  
Дата: 12.01.11 07:57
Оценка:
Здравствуйте, alexparser, Вы писали:

A>Пишу аппу на C# для вывода записей в листваю из базы.

A>Записи заливаю в контрол из главного потока, по понятной причине прогрессбар естественно не реагирует, да и листвью тоже((
A>Хочу сделать все грамотно, киньте плиз пример как работать с контролами из отдельного потока аля треда..
Например How to: Make Thread-Safe Calls to Windows Forms Controls. Ключевое там: метод SetText.
Можешь также воспользоваться поиском по форуму, подобных тем здесь очень много.
Re: Вывод в контрол из отдельного потока?
От: me2  
Дата: 12.01.11 10:18
Оценка:
Здравствуйте, alexparser, Вы писали:

A>Доброго времени!


A>Пишу аппу на C# для вывода записей в листваю из базы.

A>Записи заливаю в контрол из главного потока, по понятной причине прогрессбар естественно не реагирует, да и листвью тоже((
A>Хочу сделать все грамотно, киньте плиз пример как работать с контролами из отдельного потока аля треда..

A>Очень желательно короткий и лаконичный примерчик.


A>Большие спасибки...


Например:

var sync = SynchronizationContext.Current;

ThreadPool.QueueUserWorkItem((syncParam)
{
   var s = syncParam as SynchronizationContext;

   if(s != null)
      s.Post((postParam)=>
      {
         // работаем с элементами UI thread
      }, null);
}, sync);


Как-то так в общем
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.