c#的 winform 应该如何持续地向一个目标发送 webRequest 请求

2019-08-03 20:41:43 +08:00
 miao666

因为我不太懂 C#,只是临时做一个小工具要用一下。大佬勿喷

我使用一个定时器,然后在定时器里发送 post 请求,请求了 8 次,被 GC 回收了。。。
然后期望的业务功能没实现。
应该怎样禁止 GC 回收定时器,然后又不会导致程序崩溃?

Timer threadTimer = new System.Threading.Timer ( new System.Threading.TimerCallback ( ThreadMethod ),null, -1, -1 );
1619 次点击
所在节点    问与答
6 条回复
secondwtq
2019-08-03 22:08:12 +08:00
你把这个实例放到窗体类里面呢

还是说现在已经在里面了 ... 毕竟楼里面好像没有说这是函数里面的
Magentaize
2019-08-03 22:39:52 +08:00
Observable.Timer
yejinmo
2019-08-03 22:54:16 +08:00
别用 Timer 了 直接在 Program.cs 的 Main 用 Task.Run


var exitFlag = false; // 退出标志
Task.Run(()=>
{
while (!exitFlag)
{
try
{
// 你的代码
}
catch {}
Thread.Sleep(1000 * 1); // 休眠 1 秒
}
});


你说的被回收 WebRequest 定义在了 ThreadMethod 里?
miao666
2019-08-04 02:07:58 +08:00
@yejinmo 是的啊,debug 的时候不会,发布以后就被回收了
miao666
2019-08-04 02:08:11 +08:00
@Magentaize 谢谢,我试试
miao666
2019-08-04 02:08:33 +08:00
@secondwtq 放在 form.cs 里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/588822

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX