首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
miao666
V2EX  ›  问与答

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

  •  
  •   miao666 · 176 天前 · 690 次点击
    这是一个创建于 176 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    Timer threadTimer = new System.Threading.Timer ( new System.Threading.TimerCallback ( ThreadMethod ),null, -1, -1 );
    
    6 回复  |  直到 2019-08-04 02:08:33 +08:00
    secondwtq
        1
    secondwtq   176 天前
    你把这个实例放到窗体类里面呢

    还是说现在已经在里面了 ... 毕竟楼里面好像没有说这是函数里面的
    Magentaize
        2
    Magentaize   176 天前 via iPhone
    Observable.Timer
    yejinmo
        3
    yejinmo   176 天前
    别用 Timer 了 直接在 Program.cs 的 Main 用 Task.Run


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


    你说的被回收 WebRequest 定义在了 ThreadMethod 里?
    miao666
        4
    miao666   175 天前 via iPhone
    @yejinmo 是的啊,debug 的时候不会,发布以后就被回收了
    miao666
        5
    miao666   175 天前 via iPhone
    @Magentaize 谢谢,我试试
    miao666
        6
    miao666   175 天前 via iPhone
    @secondwtq 放在 form.cs 里
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1110 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 17:46 · PVG 01:46 · LAX 09:46 · JFK 12:46
    ♥ Do have faith in what you're doing.