Как вклиниться в Thread?

228
26 марта 2017, 01:52

Я как то встречал возможность выполнить код, вклинившись в работающий Thread. Но не могу вспомнить как это делалось. Суть та же что и для Dispatcher.Invoke() или Dispatcher.BeginInvoke(), но для Thread

Answer 1

Метод Init() не завершится, пока не будет вызван BeginInvokeShutdown();

private void Init()  
{     
    Thread workerThread = new Thread(new ParameterizedThreadStart(DoWork));     
    workerThread.IsBackground = true;     
    workerThread.Start(Dispatcher.Current);                 

    Dispatcher.Run();  
    // Once shutdown you cannot restart the dispatcher in this appdomain  
}    
void DoWork(object startArg) 
{  
    Dispatcher targetDispatcher = startArg as Dispatcher;  
    if(targetDispatcher == null) {  
       // Log error  
       return;  
    }  
    while(working)   
    {  
       targetDispatcher.BeginInvoke(....);  
    }  
    targetDispatcher.BeginInvokeShutdown(...);  
}
READ ALSO
Анимация масштабирования

Анимация масштабирования

Подскажите пожалуйста пример кода, чтобы при нажатии кнопки изменялся горизонтальный масштаб, например листбокса listbox1 от 0 до 1, то есть чтобы...

226
C# различие List<T> и Collection<T>

C# различие List<T> и Collection<T>

В чем различие между List и CollectionГде и при каких условиях будет рациональнее использовать тот или другой тип?

256
Указать расположение Grid.Row и Grid.Column

Указать расположение Grid.Row и Grid.Column

У меня 5 строк и 5 колонок в Grid и получается 25 ячеек и как программно задать для картинки GridRow="" и Grid

249