次のコードがあります。
public partial class WaitScreen : Form
{
public Action Worker { get; set; }
public WaitScreen(Action worker)
{
InitializeComponent();
if (worker == null)
throw new ArgumentNullException();
Worker = worker;
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Task.Factory.StartNew(Worker).ContinueWith(t => { this.Close(); }, TaskScheduler.FromCurrentSynchronizationContext());
}
}
そして、これはコンシューマのコードです:
private void someButton_Click(object sender, EventArgs e)
{
using (var waitScreen = new WaitScreen(SomeWorker))
waitScreen.ShowDialog(this);
}
private void SomeWorker()
{
// Load stuff from the database and store it in local variables.
// Remember, this is running on a background thread and not the UI thread, don't touch controls.
}
ここで、アクション「SomeWorker」にパラメータを追加する必要があります。たとえば、次のようになります。
private void SomeWorker(Guid uid, String text)
{
// here will execute the task!!
}
パラメータuidとtextをアクションに渡すにはどうすればよいですか?
任意のパラメーターを渡して、任意の量とタイプのパラメーターで動作できるように、汎用にすることは可能ですか?
どんな助けでも大歓迎です!