相关疑难解决方法(0)

如何将计时器添加到C#控制台应用程序

就是这样 - 如何在C#控制台应用程序中添加计时器?如果你能提供一些示例编码会很棒.

c# console timer

127
推荐指数
5
解决办法
25万
查看次数

C#定时器是否在单独的线程上经过?

System.Timers.Timer是否在与创建它的线程不同的线程上经过?

让我们说我有一个定时器,每5秒触发一次.当计时器触发时,在已用方法中,某些对象被修改.让我们说修改这个对象需要很长时间,比如10秒.在这种情况下,我是否可能遇到线程冲突?

c# multithreading timer

86
推荐指数
5
解决办法
10万
查看次数

我可以使用Task.Delay作为计时器吗?

我想每秒执行一些代码.我现在使用的代码是:

Task.Run((作用)ExecuteSomething);

ExecuteSomething()定义如下:

 private void ExecuteSomething()
        {
            Task.Delay(1000).ContinueWith(
               t =>
               {
                   //Do something.

                   ExecuteSomething();
               });
        }
Run Code Online (Sandbox Code Playgroud)

这个方法会阻塞一个线程吗?或者我应该Timer在C#中使用class?似乎Timer还专门用于执行(?)

c# multithreading asynchronous timer task

13
推荐指数
2
解决办法
6268
查看次数

C#:等待 n 毫秒,并每 n/m 毫秒测试一个布尔值

我必须每 250 毫秒测试一次布尔值,最多 2 秒,并在为真时停止。
尝试过这个,但 Thread.Sleep 对我来说不是一个好的解决方案,因为它冻结了我的软件,并且等待更多不会改变任何东西,因为布尔值在冻结时不会改变。

bool onLine = false;
Stopwatch chrono = new Stopwatch();
chrono.Start();
while (chrono.ElapsedMilliseconds < 2000)
{
    if (!State().Equals(Online))
    {
        System.Threading.Thread.Sleep(250);
    }
    else
    {
        onLine = true;
        operationCompleted();
        break;
    }
}
if (!onLine)
{
    MessageBox.Show("Error");
}
Run Code Online (Sandbox Code Playgroud)

如果有人有正确的实现,我不知道如何在计时器引发的事件中进行测试?

c# timer

1
推荐指数
1
解决办法
2925
查看次数

标签 统计

c# ×4

timer ×4

multithreading ×2

asynchronous ×1

console ×1

task ×1