Windows商店应用程序中缺少AsyncResult?

时间:2013-01-19 10:38:38

标签: c# asynchronous windows-store-apps

我正在移植一个.Net库,它大量使用Asynchronous Programming Model(APM)到Windows商店应用程序库。

我想保持方法定义相同,因此使用该库的其他代码将与Windows商店应用版本一起使用。 (即我喜欢它,没有异步等待模式)。

问题是虽然Windows商店应用似乎与APM兼容,但缺少具体的AsyncResult类。因此,无法获得在回调中调用BeginInvoke()的委托实例并调用EndInvoke()

public MyObject EndDoSomething (IAsyncResult result)
{
    // Retrieve the delegate.
    AsyncResult asyncResult = (AsyncResult)result; // Not possible in Windows store app - no AsyncResult

    // Wait for the WaitHandle to become signaled.
    result.AsyncWaitHandle.WaitOne();

    // Call EndInvoke to retrieve the results.
    MyObject rv = ((MyAsynchronousDelegate)asyncResult.AsyncDelegate).EndInvoke(result);

    // Close the wait handel
    result.AsyncWaitHandle.Close()  // Close() is also missing

    return rv;
}

那么该做什么呢?

0 个答案:

没有答案