gpt4 book ai didi

c# - 创建供 ASP.NET 应用程序中的所有线程使用的静态 Regex 对象是否有效?

转载 作者:IT王子 更新时间:2023-10-29 04:09:34 28 4
gpt4 key购买 nike

我需要知道像这样创建静态 Regex 对象是否安全:

public static Regex s_Regex_ExtractEmails = new Regex(@"\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}\b");

然后像这样从 ASP.NET 线程中静态调用它:

s_Regex_ExtractEmails.Matches("my email is mail@email.com")

这会造成什么问题吗?

我这样做基本上是为了优化,以便可以预编译和重用 Regex 对象。

最佳答案

是的,Regex 对象是线程安全的。来自 the docs :

The Regex class is immutable (read-only) and is inherently thread safe. Regex objects can be created on any thread and shared between threads.

您可能也想考虑使用 RegexOptions.Compiled - 尽管不要假设它会有助于提高性能;测量!

关于c# - 创建供 ASP.NET 应用程序中的所有线程使用的静态 Regex 对象是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664271/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com