c# - 带参数的 System.Threading.Timer TimerCallback 委托(delegate)?

标签 c# timer

我需要将以下 int dldnow 传递给 sendData 静态方法/委托(delegate)。

public int dldnow;
Timer timer = new Timer(new TimerCallback(sendData), null, 1000*30, 1000*30);

public static void sendData(object obj)
{
  string imageCount = (string)dldnow;
  string imageCountJson = wc.DownloadString("http://*********/u.php?count=" + imageCount);
}

最佳答案

如果你想传递一次,使用第二个构造函数参数:

System.Threading.Timer(new TimerCallback(sendData), dldnow, 1000*30, 1000*30);

如果你想定期访问它,你可以做一个静态的volatile字段:

public static volatile int dldnow;

(需要 volatile 以便在从多个线程访问时它始终是最新的)

关于c# - 带参数的 System.Threading.Timer TimerCallback 委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930350/

相关文章:

C# 程序卡住在整数列表上

c# - 将状态错误返回给 WebRequest

Java使用定时器来断开客户端与服务器的连接

java - 如何使用计时器在java中使图像每x秒随机出现一次?

c++ - C++中的方法,每隔特定分钟数调用一个函数

sockets - 电子邮件中的倒计时器图像 GIF

c# - Entity Framework 中的级联删除

c# - 使用 ClickOnce 应用程序创建启动文件夹快捷方式?

c# - 从坐标节点索引

c# - 从 BackgroundWorker 启动时计时器是否工作?