2016-07-20 4 views
0

を発行します接続が切断されたかどうかは分かりません。 は今、私はこのようなDispatcherTimerを使用して私の接続を確認したい:UWP streamsocketピングnetworktimerは、私がUWPでStreamSocketを持っていると私はStoreAsync()メソッドを使用してDataWriterオブジェクトを使用して、このように私のメッセージを送信

 private static async void NetworkTimer_Tick(object sender, object e) 
    { 
     foreach (NetworkMember member in networkMemberCollection) 
     { 
      if (member.Connected == true && member.Disconnecting == false) 
      { 
       await SendNetworkMessage(member, new PingMessage()); 

      } 
     }} 

しかし、これはDataWriterにObjectDisposedExceptionsを引き起こしているタイミングの問題を引き起こしています。 DispatcherTimerスレッドは、別のスレッドからメッセージを送信するときにStreamSocketを使用できないようです。私の質問は:Pingが毎回送信されるが、SendNetworkMessage操作がオーバーラップするのではなく順番に行われるようにするにはどうすればよいですか?

おかげ

答えて

0

私が別のスレッドからのメッセージを送信するときDispatcherTimerスレッドはStreamSocketを使用することはできませんようです。

Pingが毎回送信されるが、そのSendNetworkMessage操作が重複するのではなく順番に行われることを確認するにはどうすればよいですか?

それは可能だ、と私はforeachawait操作を使用してコードを順番にメッセージを送るの仕事を確保することができると思います。

唯一の問題は、接続が切断されたかどうかわかりません。

接続が切断されたかどうかを知りたい場合は、Handling WinRT StreamSocket disconnects (both server and client side)を参照してください。

関連する問題