首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让函数延时5秒

如何让函数延时5秒
EN

Stack Overflow用户
提问于 2011-11-23 06:29:08
回答 6查看 15.5K关注 0票数 0

我正在尝试将其转换为C#代码:

等待5秒,然后从银行账户中扣款。

我有种感觉我快到了..。但这不管用。我这样做是对的吗?

代码语言:javascript
复制
    public override void Process(BankAccount b, decimal amount)
    {
        DateTime present = DateTime.Now;
        DateTime addFiveSeconds = DateTime.Now.AddSeconds(5);

        if (present != addFiveSeconds)
        {
            this.Status = TransactionStatus.Pending;
        }
        else
        {
            b.Debit(amount);
            this.Status = TransactionStatus.Complete;
        }
    }
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-23 07:05:46

我认为上面的答案有缺陷,它挂断了主线,在大多数情况下,它是危险的。您应该为这个延迟任务启动一个新线程,在线程进程中,休眠30秒,然后在第二个线程中完成工作。

票数 1
EN

Stack Overflow用户

发布于 2011-11-23 06:32:43

使用Thread.Sleep(5000)来挂起一个线程5秒钟,而不是你的代码-它有几个逻辑错误。

在执行该行时,present将是DateTime.Now的值,而add30Seconds将是该行执行时DateTime.Now的值加上5秒。

这些变量不会更新,也不会更改它们的值。

这意味着present永远不会对add30Seconds执行==操作。

票数 6
EN

Stack Overflow用户

发布于 2011-11-23 06:32:33

那么你的要求是等待30秒后再借记吗?如果是这样的话,看看Timer类。您可以将间隔设置为30秒,并在触发时执行您的操作。

http://www.dijksterhuis.org/using-timers-in-c/

然而,30秒的等待似乎是一个可怕的长时间?这是课程作业要求吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8234793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档