Предположим, у меня есть метод следующую сигнатуру метода асинхронным:Преобразовать метод Async использовать Task Parallel библиотека
public IAsyncResult MyAsyncMethod(AsyncCallback asyncCallback, object state);
И, следовательно, я использую следующий код для вызова его и присвоить ему state
объект и обратный вызов:
public class test
{
// Private class to hold/pass-through data used by Async operations
private class StateData
{
//... Whatever properties I'll need passed to my callback ...
}
public void RunOnSeparateThread()
{
StateData stateData = new StateData { ... };
MyAsyncMethod(m_asyncCallback, stateData);
}
private AsyncCallback m_asyncCallback = new AsyncCallback(AsyncComplete);
private static void AsyncComplete(IAsyncResult result)
{
// Whatever stuff needs to be done after completion of Async method
// using data returned in the stateData object
}
}
Я ищу, чтобы сделать то же самое с помощью Task Parallel Library, и я не уверен, как это сделать. Что бы правильный код, чтобы достичь того же результата, являются:
- Run
MyAsyncMethod
в отдельном потоке - По завершении есть
state
объект, возвращаемый с ним передается следующему методу - В этом случаеAsyncComplete
Или есть лучший способ добиться того же результата?
Кроме того, хотя это написано на C#, я в равной степени удобен в VB и C#, поэтому любой ответ будет очень благодарен.
Благодарим вас и, надеюсь, это имеет смысл.
Это должно помочь вам начать работу. Http://www.albahari.com/threading/part5.aspx#_Task_Parallelism –
спасибо, @JoshL, выглядит очень полезная ссылка - Вглядываясь в нее сейчас. –
Возможно [это на MSDN] (https://msdn.microsoft.com/en-us/library/hh191443.aspx) также хорошо. – pid