| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Как выполнить метод в запускающем потоке? |
| Автор: _hunter 15.5.2009, 18:48 | ||
| Добрый день. Возникла необходимость выполнить метод потока в потоке его вызвавшем. Т.е. TestProc1/TestProc2 нужно выполнить в "Main Thread". Но ни первый ни второй метод этого не делают :( (Как проверяю -- просто ставлю бряки на bool stop и в панельке "Debug Location" смотрю на "Thread")
Можно ли как-то "выбрать" поток в котором будет выполняться код? С уважением... |
| Автор: Partizan 15.5.2009, 18:56 |
| _hunter, если .NET 3.5, то при создании объекта, можно получить текущий Dispatcher (из System.Windows.Threading в WindowsBase.dll), а потом вызвать у него Invoke, передав в качестве параметра нужный делегат |
| Автор: _hunter 15.5.2009, 19:54 |
| 2.0 :( |
| Автор: Partizan 16.5.2009, 15:45 |
| _hunter, можно сделать также как в BackgroundWorker реализовано...создаётся приватный private AsyncOperation asyncOperation; после чего, из второго потока у asyncOperation вызывается метод Post, в который передаётся делегат для выполнения http://msdn.microsoft.com/en-us/library/system.componentmodel.asyncoperation.post.aspx |