完了までに時間がかかるメソッドがいくつかあるアプリがあります。バックグラウンドワーカーを使用してこれらのメソッドを実行し、UI の応答性を維持しています。私の方法は次のようになります
public void DoSomething()
{
   while( HaveMoreWork )
   {
     // do work
   }
}
UIでいつでもこれをキャンセルできるようにしたいので、メソッドを変更してBackgroundworkerを取得しました
public void DoSomething(Backgroundworker worker)
{
   while( HaveMoreWork && !worker.CancelationPending )
   {
     // do work
   }
}
私の質問は、これを行うためのより良い方法があるかどうかです。これらすべてのメソッドに Backgroundwoker を引数として渡すのは少し面倒です。このためのベストプラクティスは何ですか?