我有一个托管在 IIS 中的 WCF Web 服务——该服务有一个方法——我们称之为 DoSomething()。DoSomething() 从客户端应用程序调用。
DoSomething 执行一些工作并将答案返回给用户。现在我需要记录 DoSomething 被调用的频率。我可以将它添加到 DoSomething 函数中,以便每次调用都会写入 sql 数据库并更新计数器,但这会减慢 DoSomething 方法的速度,因为用户需要等待这个额外的数据库调用。
让 DoSomething 方法生成一个新线程来更新数据库中的计数器,然后将 DoSomething 方法的答案返回给用户而不等待线程完成,这是一个不错的选择吗?然后我将不知道数据库更新是否失败,但这并不重要。
产生一个新的后台线程而不是等待它在 WCF 中完成有什么问题吗?或者有没有更好的方法来解决这个问题?
更新:以不同的方式提出问题。在 wcf Web 服务方法中生成新线程是不是一个坏主意?