小编que*_*bob的帖子

我如何在 C# 中实现类似 JavaScript 的 setTimeout 之类的东西?

我有一个 C# 应用程序,它从服务器接收更新、处理它并更新 GUI。更新不断进来,每秒说几次。我希望应用程序最多每 2 秒更新一次 GUI。因此,如果更新在时间 T 到来,我希望从 T 到 T+2sec 的所有更新都保留在缓冲区中,并在 T+2sec 进行处理和 GUI 更新。我知道在 JS 中你可以使用 setTimeout() 在未来的某个时间执行一些代码,所以我想要这样的东西。

这样做的合适方法是什么?我听说使用线程来“调度”函数调用并不是一个好主意,但我不确定是否有更好的方法来做到这一点。使用一个间隔两秒的计时器,与 GUI 线程同步,进行处理/更新会不会很糟糕?

c# settimeout

5
推荐指数
1
解决办法
2866
查看次数

我可以在子类实现之前始终调用的基类中使用默认方法吗?

C#here - 是否可以使用抽象基类定义具有默认行为的方法,并在子类实现之前调用此默认值?例如:

public abstract class Base
{
    public virtual int GetX(int arg)
    {
        if (arg < 0) return 0;
        // do something here like "child.GetX(arg)"
    }
}

public class MyClass : Base
{
    public override int GetX(int arg)
    {
        return arg * 2;
    }
}

MyClass x = new MyClass();
Console.WriteLine(x.GetX(5));    // prints 10
Console.WriteLine(x.GetX(-3));   // prints 0
Run Code Online (Sandbox Code Playgroud)

基本上我不想在每个子实现中都放置相同的样板...

c# oop

3
推荐指数
1
解决办法
2336
查看次数

标签 统计

c# ×2

oop ×1

settimeout ×1