ここで実行されている UDP リスナーを停止しようとしていBackgroundWorker;
ますが、コードは次のとおりです。
private void bw_DoWork(object senderx, DoWorkEventArgs e)
{
BackgroundWorker worker = senderx as BackgroundWorker;
while(true)
{
Debug.WriteLine("run");
if ((worker.CancellationPending == true))
{
Debug.WriteLine("cancel pending");
e.Cancel = true;
newsock.Close();
serverStatus = false;
break;
}
else
{
try
{
Debug.WriteLine("waiting for reponse..");
data = newsock.Receive(ref sender);
(STUCK HERE IF NO RESPONSE)
基本的に、UDP の応答が得られないと、受信ループに陥り、呼び出しbw.CancelAsync()
がチェックされません。
この問題を解決するにはどうすればよいですか