带参数的TimerCallback委托

本文关键字:委托 TimerCallback 参数 | 更新日期: 2023-09-27 18:08:34

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

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);
}

带参数的TimerCallback委托

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

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

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

public static volatile int dldnow;

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