Debug LOG
System.Diagnostics.Debug.WriteLine("Debug Info");
System.Diagnostics.Debug.WriteLine("Debug: {0}", debugLine);
UWP 休眠
使用AutoResetEvent 模拟休眠
private void Sleep(int msTime)
{
AutoResetEvent h = new AutoResetEvent(false);
h.WaitOne(msTime);
}
UWP 异步线程
不更新UI:
WorkItemHandler workItemHandler;
IAsyncAction m_checkAction;
workItemHandler = new WorkItemHandler((IAsyncAction action) =>
{
while (action.Status == AsyncStatus.Started)
{
// do something UI-unrelated
Sleep(TimerPeriod * 1000);
}
});
m_checkAction = ThreadPool.RunAsync(workItemHandler, WorkItemPriority.High, WorkItemOptions.None);
更新UI:
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
// Your UI update code goes here!
});
UWP定时器
ThreadPoolTimer CheckTimer;
// start timer
TimeSpan delay = TimeSpan.FromSeconds(TimerPeriod);
CheckTimer = ThreadPoolTimer.CreatePeriodicTimer(new TimerElapsedHandler(CheckNetworkStatus), delay);
private async void CheckNetworkStatus(ThreadPoolTimer timer)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
{
//
// UI components can be accessed within this scope.
//
});
}
// Cancel Timer
CheckTimer.Cancel();