编程语言
首页 > 编程语言> > 我应该在许多调用同一函数的c#中使用静态函数吗?

我应该在许多调用同一函数的c#中使用静态函数吗?

作者:互联网

John的控制台应用程序多次调用我的DLL函数(每秒约15次).我正在考虑将此函数作为静态方法.

我知道 :

>它只能访问静态道具和物品.
>它不需要实例即可运行该函数.

但是我不知道这些是否是我需要问自己的唯一问题.

每个John对我函数的调用都在他创建的新线程中.

>如果我的函数有错误,这将如何影响所有其他调用?
>是否应将此函数作为具有类实例的常规函数​​(John将创建该实例)?
>那GC呢?

这个问题的最佳实践答案是什么?

解决方法:

听起来可能有问题.调用在多线程环境中对静态(共享)对象进行操作的方法将为您敲响警钟.

查看您的代码,如果有可能同时从两个(或多个)线程访问共享对象,则将该对象作为实例字段,并使您的方法成为实例方法.

当然,是否存在风险很大程度上取决于实际代码(您未显示),但是使所有调用均为非静态调用意味着您可以降低潜在风险.

标签:static-methods,c,net
来源: https://codeday.me/bug/20191101/1987519.html