我应该在许多调用同一函数的c#中使用静态函数吗?
作者:互联网
John的控制台应用程序多次调用我的DLL函数(每秒约15次).我正在考虑将此函数作为静态方法.
我知道 :
>它只能访问静态道具和物品.
>它不需要实例即可运行该函数.
但是我不知道这些是否是我需要问自己的唯一问题.
每个John对我函数的调用都在他创建的新线程中.
>如果我的函数有错误,这将如何影响所有其他调用?
>是否应将此函数作为具有类实例的常规函数(John将创建该实例)?
>那GC呢?
这个问题的最佳实践答案是什么?
解决方法:
听起来可能有问题.调用在多线程环境中对静态(共享)对象进行操作的方法将为您敲响警钟.
查看您的代码,如果有可能同时从两个(或多个)线程访问共享对象,则将该对象作为实例字段,并使您的方法成为实例方法.
当然,是否存在风险很大程度上取决于实际代码(您未显示),但是使所有调用均为非静态调用意味着您可以降低潜在风险.
标签:static-methods,c,net 来源: https://codeday.me/bug/20191101/1987519.html