gpt4 book ai didi

C# System.Threading.Timer 及其状态对象

转载 作者:行者123 更新时间:2023-11-30 18:09:06 26 4
gpt4 key购买 nike

我正在编写一个 C# 程序,该程序使用 System.Threading.Timer 在 UDP 套接字 ReceiveAsync 调用上超时。

我的程序轮询远程设备,发送一个 UDP 数据包并期待一个返回。

我在一次调用 Timer.Change 的一次性模式下使用计时器,每次我想要一个新的超时时间。

对于每次超时,我都希望超时处理程序具有不同的信息。

如果我更改在创建时传递给 Timer 的对象,它似乎在处理程序执行时不会更改。

这样做的唯一方法是销毁计时器并创建一个新计时器吗?

谢谢,

最佳答案

您传递的是结构而不是类对象吗?结构是值类型,您将得到它的第一个版本的副本。您所做的更改将丢失,因为回调中的状态未通过 ref 传递。使用类而不是结构是简单的解决方案。

将状态对象存储在您自己的类中是另一种方法。

关于C# System.Threading.Timer 及其状态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com