Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 WP7和Skydrive WaitOne阻止一切_Windows Phone 7_Onedrive_Waitone - Fatal编程技术网

Windows phone 7 WP7和Skydrive WaitOne阻止一切

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

我正在尝试从SkyDrive下载一个文件,并将异步调用包装在一个同步类中。然而,当我打电话给WaitOne时,一切都被屏蔽了,EventHandler从未接到过电话

 _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>
});