0
As I do in the universal app win 10 to perform a code execution of 10 in 10 sec. In the form would use adding a team. Please help me.
0
As I do in the universal app win 10 to perform a code execution of 10 in 10 sec. In the form would use adding a team. Please help me.
0
There are some possibilities:
ThreadPoolTimer
:
public MainPage()
{
InitializeComponent();
ThreadPoolTimer timer = ThreadPoolTimer.CreatePeriodicTimer(async (t) =>
{
// do some work not connected with UI
Debug.WriteLine($"executado: {DateTime.Now}");
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
// do some work on UI here;
//MyTextBlock.Text = "Test";
});
}, TimeSpan.FromMinutes(1));
}
Another possibility DispatcherTimer
(this has the advantage of updating UI
directly in the delegated method)
private readonly DispatcherTimer _mytimer = new DispatcherTimer();
public MainPage()
{
InitializeComponent();
_mytimer.Interval = new TimeSpan(0, 0, 0, 5, 0);
_mytimer.Tick += Mytimer_Tick;
_mytimer.Start();
}
private void Mytimer_Tick(object sender, object e)
{
Debug.WriteLine($"executado: {DateTime.Now}");
// do some work on UI here;
//MyTextBlock.Text = "Test";
}
Another possibility is to use a Trigger (trigger) run in the background of minutes in minutes.
Yes, minutes, one Trigger of the kind Timer
can only be defined from 15 minutos
(if you try to set a value less than 15 error will occur), that is, every 15 minutes your Trigger/Timer
is fired. The initial time is not based on the moment when the Trigger and yes every 15 minutes "full", for example 00:15, 00:30, ...
public sealed partial class MainPage
{
public MainPage()
{
InitializeComponent();
RegisterTask();
}
private void RegisterTask()
{
//create a task/timer to run each 15 minutes (minimum allowed 15min)
var builder = new BackgroundTaskBuilder
{
Name = "My Background TimerTrigger"
};
builder.SetTrigger(new TimeTrigger(15, false));
builder.Register();
Debug.WriteLine($"RegisterTask {DateTime.Now}");
}
}
sealed partial class App
{
protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args)
{
//Can be fired more than once per trigger, check it out.
Debug.WriteLine($"OnBackgroundActivated - {DateTime.Now}");
}
}
Source Code:
https://github.com/rubgithub/Timer-UWP
References:
https://docs.microsoft.com/pt-br/windows/uwp/launch-resume/run-a-background-task-on-a-timer-
https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.Background.TimeTrigger
https://github.com/Microsoft/Windows-universal-samples/blob/6370138b150ca8a34ff86de376ab6408c5587f5d/Samples/BackgroundActivation/cs/SampleConfiguration.cs
https://stackoverflow.com/questions/34271100/timer-in-uwp-app-which-isnt-linked-to-the-ui
0
TimeTrigger trigger = new TimeTrigger(10, false);
TimeTrigger ^ trigger = ref new TimeTrigger(10, false);
Source: https://docs.microsoft.com/pt-br/windows/uwp/launch-resume/run-a-background-task-on-a-timer-
But where does the code enter that will be executed in time?
Browser other questions tagged c# visual-studio uwp
You are not signed in. Login or sign up in order to post.
Make a while true with something like the Sleep thread.
– Denis
How do I use the Sleep thread?
– South92
System.Threading.Tasks.Task.Delay(3000). Wait() http://stackoverflow.com/questions/12641223/thread-sleep-replacement-in-net-for-windows-store
– Denis