C#论坛-玄机论坛-C#论坛-玄机宝盒-玄机类库-C#

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1010|回复: 9

[已解决] C#除了thread.sleep()的延时方法,还有什么?

[复制链接]
  • TA的每日心情
    无聊
    2017-6-6 14:17
  • 签到天数: 8 天

    [LV.3]【仗剑天涯】

    小哲 发表于 2016-8-9 17:24:08 | 显示全部楼层 |阅读模式
    1紫晶
    本帖最后由 小哲 于 2016-8-9 17:25 编辑

    大佬们 小弟我需要一个线程延时功能,别的线程不受影响正常工作,Thread.sleep(50); 这个会让所有线程延时。。。。

    我大约执行完一个方法后要延时大约20s在执行下一函数

    比如
    [C#] 纯文本查看 复制代码
    MessageBox.Show("Test");
    delay(20);
    MessageBox.Show("Test");



    别跟我说执行做个循环for(I++)当延时函数就行了,多谢各位大神~


    最佳答案

    查看完整内容

    直接把所有代码都放在线程里执行 中间用Thread.sleep就不会卡界面了 比如
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    该用户从未签到

    luohe0395 发表于 2016-8-9 17:24:09 | 显示全部楼层
    直接把所有代码都放在线程里执行
    中间用Thread.sleep就不会卡界面了
    比如
    [C#] 纯文本查看 复制代码
                Task.Factory.StartNew(() =>
                {
                       ................
                });
    或者
                ThreadPool.QueueUserWorkItem(s => {
                      .........
                });
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-9-6 17:20
  • 签到天数: 7 天

    [LV.3]【仗剑天涯】

    十一月的肖邦 发表于 2016-8-10 11:01:33 | 显示全部楼层
    thread.sleep不是休眠所有线程,只对当前线程有效,另外延时20S执行下个函数这个可以用有限状态机实现,不阻塞主线程,也就是不卡UI了。
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-9-6 17:20
  • 签到天数: 7 天

    [LV.3]【仗剑天涯】

    十一月的肖邦 发表于 2016-8-10 11:01:49 | 显示全部楼层
    thread.sleep不是休眠所有线程,只对当前线程有效,另外延时20S执行下个函数这个可以用有限状态机实现,不阻塞主线程,也就是不卡UI了。
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2017-6-6 14:17
  • 签到天数: 8 天

    [LV.3]【仗剑天涯】

     楼主| 小哲 发表于 2016-8-10 14:56:10 | 显示全部楼层
    luohe0395 发表于 2016-8-10 10:44
    直接把所有代码都放在线程里执行
    中间用Thread.sleep就不会卡界面了
    比如[mw_shl_code=csharp,true]        ...

    我用定时器解决了 是不是有点傻
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-10 13:24
  • 签到天数: 1 天

    [LV.1]【初入江湖】

    我是MT 发表于 2016-8-15 09:20:32 | 显示全部楼层
    小哲 发表于 2016-8-10 14:56
    我用定时器解决了 是不是有点傻

    编程都是非常灵活的,定时器貌似也是可以的。
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    该用户从未签到

    luohe0395 发表于 2016-8-16 10:47:08 | 显示全部楼层
    小哲 发表于 2016-8-10 14:56
    我用定时器解决了 是不是有点傻

    我等菜鸟能实现功能就是成功!不管用啥实现的...
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    该用户从未签到

    BinGoo 发表于 2016-9-2 18:16:40 | 显示全部楼层
    用线程池ThreadPool
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    该用户从未签到

    eddieiat 发表于 2016-9-11 20:38:58 | 显示全部楼层
    也可以使用 await Task.Delay(20);
    https://msdn.microsoft.com/en-us/library/system.threading.tasks.task.delay%28v=vs.110%29.aspx
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    该用户从未签到

    lyx 发表于 2018-4-17 11:59:14 | 显示全部楼层
    Task.Factory.StartNew(() =>
                {
                    MessageBox.Show("Test");
                    System.Threading.Thread.Sleep(50);
                    MessageBox.Show("Test");
                });
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    QQ|Archiver|手机版|小黑屋|玄机论坛   

    GMT+8, 2018-10-21 21:01 , Processed in 0.681536 second(s), 24 queries .

    Powered by Msdn5.com

    © 2014-2015 Msdn5 Inc.

    快速回复 返回顶部 返回列表