私はこの質問を形成するのに苦労しているので、静的メソッドに関する通常の議論を繰り返さないように、いくつかの方法でそれを述べようとします。これは、アーキテクチャに関する問題かもしれません。
渡された変数を受け入れる静的クラスに静的メンバーがある場合、操作が頻繁に使用され、長時間実行されると、データの衝突/破損のリスクがありますか?IE:データベースへの永続化のためにオブジェクトグラフタイプを受け入れるデータアクセスクラス。
例えば:
namespace MyApp.DAL.People
{
public static class Person
{
public static void Insert(Entities.People.Person p)
{
// ADO.net code, try catch etc, execute to db, call other private method
....
Helper(p);
}
private static void Helper(Entities.People.Person p)
{
// do work...
}
}
}
ユーザー「A」がPerson.Insert(myNewPerson)
呼び出し操作を開始すると、ユーザー「B」が静的クラスとメソッドを使用して「個人オブジェクト」をデータベースに保存する前に、そのプロセスは完全に終了します。
操作はシリアルおよび非同期であり、静的クラスの使用を本質的にブロックしていますか?
これは、アプリケーション(開発者)がアプリケーションスペースで複数のスレッドを使用しようとした場合にのみ問題になりますか?
アプリケーション用に別のスレッドを明示的に起動しない限り、すべてが単一のスレッドで実行されていますか?
ちなみに、これはSOに関する私の最初の投稿です-質問/回答を投稿するために時間を割いてくれた皆さんに特に感謝します-あなたの時間はありがたいです!