票3メソッドを2つ作る必要はありません。より排他制御すべきです(※calc1)。※ロックすべきかどうかは計算に使う値がスレッド間で競合するかどうかによります。必要はありません(※calc2)。排他の必要はありません。個の銅バッジとても分かり易くご教授いただきありがとうございます。7:21ありがとうございます。解決することが出来ました。|3二つのスレッドから一つの計算メソッドを同時に使用したいのですが、その場合はやはり計算メソッドを2つ作るしかないのでしょうか?いいえ。2つのスレッドから同じ計算メソッドを呼び出すことは可能です。スレッド間で変数を共有しないかぎり、計算処理は各スレッド上で独立して並行に実行されます。@mattnさんが指摘するように、スレッド間で変数を共有する場合には、排他制御が別途必要になります。個の銅バッジご返答ありがとうございます。スレッドの性質を理解する事が出来ました。|2Threadの生成は、控えるべきです。スレッドの生成は、コストの掛かる処理で、極力控えます。代わりにTaskまたは、Parallelを使います。(非同期)これらは、スレッドプールを使用します。スレッドプールは、スレッドを再利用するため、スレッド生成のコストを抑えることができます。Threadクラスを用いて生スレッドを生成する場面は、ほとんどありません。長期におよびプロセスの開始から終了まで稼働し続けるような場合に限るでしょう。lockが必要な場面は、コレクションの同期、リソースの同期です。4.5以降、非同期に対応したコレクションが追加されました。System.Collections.Concurrent(名前空間)System.Collections.Immutable(名前空間)Concurrentは、複数のスレッドから同時にアクセスすることができ、lockは、不要です。Immutableは、不変コレクションです。新しいインスタンスが生成されます。intやlongなど単純型を共有リソースとする場合、lockよりもSystem.Threading.Interlockedクラスの使用を検討します。個の銅バッジ細かな使用方法をご教授いただきありがとうございます。Concurrentは初めて聞いた機能でした。使い勝手が良さそうですね。Immutableの使い時がまだ見出せないので、これは今一度勉強します。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。メソッドを呼びたい0スレッド間での情報共有について0ClosedXMLでExcelファイルを印刷する事はできるのか。メソッドのメリットが知りたい。0Enumerableのメソッドの.Zip()メソッドでこの場合の動作について知りたい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。