我在我的应用程序中使用 C#,在用户登录他的 PC 后,实时磁贴开始更新至关重要。现在更新开始时间不早于 15 分钟,因为我正在使用时间触发器进行实时磁贴更新。有什么方法可以手动触发任务,还是有其他方法可以让我的动态磁贴从用户登录系统开始更新?
问问题
302 次
3 回答
0
DispatcherTimer 可以帮助您以设定的时间间隔触发事件。您可以在 App() 构造函数中添加代码:
// _dispatcherTimer is probably a class level variable.
DispatcherTimer _dispatcherTimer;
// How often
uint _DoSomethingInterval = 500;
// Set up a DispatchTimer
_dispatcherTimer = new DispatcherTimer();
_dispatcherTimer.Tick += DoSomething;
// If you like lambdas, do this
//_dispatcherTimer.Tick += (sender, object ) =>
// { Debug.WriteLine("time passed so do something"); }
_dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, (int)_desiredReportInterval);
// The callback for the timer
private void DoSomething(object sender, object args)
{
Debug.WriteLine("time passed so do something");
}
于 2012-12-04T03:05:58.523 回答
0
UserPresent SystemTriggerType 可能是您所追求的。我正在考虑这样做的方式是同时拥有时间和系统触发器,因此每 15 分钟以及当用户解锁设备时。我不认为您使用 SystemTrigger 可以获得尽可能多的 CPU 时间,但总比没有好 http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.systemtriggertype .aspx
于 2012-12-02T08:35:25.357 回答
0
您不能手动调用后台任务,但您可以简单地使用您的后台任务运行的代码创建一个共享库,并直接从后台任务中调用它。然后,只要您想从应用程序手动触发它,您就可以手动调用该代码。
于 2012-11-29T17:09:58.920 回答