我目前正在使用VS2008的移動應用程序,它具有定期檢查期望的藍牙設備是否在範圍內的能力。目前,我正在使用System.windows.form.Timer來執行此操作。但是,我發現它會減慢應用程序的速度,更糟的是,它有時會崩潰。定期檢查藍牙設備是否在範圍內 - .NET Compact Framework
有沒有人有任何更好的想法如何定期檢查而不使用System.windows.form.timer?我目前使用32英尺藍牙。
感謝您的任何幫助提前。
問候,
查爾斯
我目前正在使用VS2008的移動應用程序,它具有定期檢查期望的藍牙設備是否在範圍內的能力。目前,我正在使用System.windows.form.Timer來執行此操作。但是,我發現它會減慢應用程序的速度,更糟的是,它有時會崩潰。定期檢查藍牙設備是否在範圍內 - .NET Compact Framework
有沒有人有任何更好的想法如何定期檢查而不使用System.windows.form.timer?我目前使用32英尺藍牙。
感謝您的任何幫助提前。
問候,
查爾斯
添加一個後臺線程的時間量X(你如何選擇長)的,而睡,然後每隔一段時間(根據多久線程睡眠),它會運行(喚醒並執行),檢查藍牙是否在範圍內,並給你某種形式的反饋,然後再次進入休眠狀態。
總結了
線程進入睡眠狀態,再次
while (true)
{
//starts a new thread
Thread blueToothThread = new Thread(new ThreadStart(menu.Run));
}
//the threads method named Run
public void Run()
{
// Perform the bluetooth check here
Console.WriteLine("You will see this only once every 8 seconds");
//choose how long thread sleeps here
Thread.Sleep(8000);
}
但是,如何使用WHILE循環來執行此操作?因爲檢查不受時間限制。它可以運行儘可能長。這種方法是否會減慢應用程序尤其是UI? – 2012-04-03 00:45:55
它會運行儘可能長,什麼限制時間是線程睡了多長時間,因爲你繼續看看[線程](http://msdn.microsoft.com/en-us/library/7a2f3ay4( v = vs80).aspx)並且如果線程處於帶有Thread.Sleep(8000)的'while(true)'無限循環;'這意味着線程每8秒只執行一次。 – 2012-04-03 00:49:01
好的。我明白你的意思。你在說我應該使用一個標誌將它設置爲真或假。如果爲true,則運行檢查,否則停止檢查。但是,我是否需要使用Thread來避免凍結 – 2012-04-03 00:51:53
你」重新使用System.Windows。 C中的表單而不是C++或C#? – 2012-04-03 00:39:50
我在Winform中使用C# – 2012-04-03 00:48:14