将在中同步运行DataReader.LoadAsync()
本文关键字:LoadAsync DataReader 运行 同步 | 更新日期: 2024-09-21 05:49:17
我用StreamSocket类编写了一个windows phone 8应用程序,但发现了一个奇怪的情况。我的代码如下
async void Connect() {
await StreamSocketConnect();
TryToSendAsync();
ReceiveAsync();
}
async void ReceiveAsync() {
//WriteLine("111");
await DataReader.LoadAsync();
//WriteLine("222");
DoReceiverCallBack();
}
async void TryToSendAsync(){
await DataWriter.StoreAsync();
}
void DoReceiveCallBack() {
//WriteLine("333");
ReceiveAsync();
//WriteLine("444");
}
按顺序,它应该遵循333=>111=>444=>222,但有时我会得到333=>111>>222=>444,尤其是在接收数据时。有时会同步吗??
是的,DataReader.LoadAsync
可以同步完成。
套接字有自己的缓冲区;当数据到达套接字时,操作系统会为您缓冲它,直到您可以读取它。如果缓冲区中有足够的数据供LoadAsync
完成,那么它将是同步的。