Обычная задача - сделать что-то в фоновом потоке, затем, когда это будет сделано, передать результаты в поток пользовательского интерфейса и сообщить пользователю.
Я понимаю, что есть два распространенных способа:
Я могу использовать TPL:
var context = TaskScheduler.FromCurrentSynchronizationContext ();
Task.Factory.StartNew (() => {
DoSomeExpensiveTask();
return "Hi Mom";
}).ContinueWith (t => {
DoSomethingInUI(t.Result);
}, context);
Или более старый ThreadPool:
ThreadPool.QueueUserWorkItem ((e) => {
DoSomeExpensiveTask();
this.InvokeOnMainThread (() => {
DoSomethingInUI(...);
});
});
Есть ли рекомендуемый способ использования MonoTouch для создания приложений iOS?