Windows phone 7 WP7和Skydrive WaitOne阻止一切
我正在尝试从SkyDrive下载一个文件,并将异步调用包装在一个同步类中。然而,当我打电话给WaitOne时,一切都被屏蔽了,EventHandler从未接到过电话Windows phone 7 WP7和Skydrive WaitOne阻止一切,windows-phone-7,onedrive,waitone,Windows Phone 7,Onedrive,Waitone,我正在尝试从SkyDrive下载一个文件,并将异步调用包装在一个同步类中。然而,当我打电话给WaitOne时,一切都被屏蔽了,EventHandler从未接到过电话 _client = new LiveConnectClient(connection.Session); _client.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(client_GetCompleted); _client.G
_client = new LiveConnectClient(connection.Session);
_client.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(client_GetCompleted);
_client.GetAsync("me/skydrive/files");
_autoEvent.WaitOne(); //get's stuck here client_GetCompleted never called.
....
void client_GetCompleted(object sender, LiveOperationCompletedEventArgs e)
{
///do stuff
_autoEvent.Set();
}
删除_autoEvent.WaitOne调用,将引发get completed事件。您很可能正在阻止UI线程。发布更多代码会有所帮助 尝试在新的非ui线程中运行第一部分:
System.Threading.ThreadPool.QueueUserWorkItem(o =>
{
_client = new LiveConnectClient(connection.Session);
_client.GetCompleted +=
new EventHandler<LiveOperationCompletedEventArgs>(client_GetCompleted);
_client.GetAsync("me/skydrive/files");
_autoEvent.WaitOne(); //get's stuck here client_GetCompleted never called.
<other code>
});