2

重複の可能性:
.NET 4 での RegEx タイムアウトの実装

Regex regexpr = new Regex(anchorPattern[item.Key], RegexOptions.Singleline, TimeSpan.FromMilliseconds(10));

「System.Text.RegulerExpression.Regex」には、3 つの引数を取るコンストラクターが含まれていません。注 : エラーはフレームワーク 4 にあります。フレームワーク 4.5 を使用すると、このエラーは発生しません。しかし、私はフレームワーク 4 を使用しており、タイムアウト正規表現を設定する必要があります。これに対する救済策は何ですか?

4

1 に答える 1

3

.NET 4 で使用しているようなコンストラクターはありません。ドキュメント ページを参照してください。コンストラクターの唯一のオプションは次のとおりです。

正規表現()

正規表現(文字列)

正規表現 (シリアル化情報、ストリーミング コンテキスト)

正規表現(文字列、正規表現オプション)

編集

Taskを使用して正規表現を実行し、Waitメソッドを使用してタイムアウトを渡すことができます。このような何かが仕事をするはずです:

var regexpr = new Regex(anchorPattern[item.Key], RegexOptions.Singleline);
var task = Task.Factory.StartNew(()=>regexpr.Match(foo));
var completedWithinAllotedTime = task.Wait(TimeSpan.FromMilliseconds(10));
于 2012-11-23T09:49:37.933 に答える