0

次のコードがあります。

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!!
    }

パラメータuidtextをアクションに渡すにはどうすればよいですか?

任意のパラメーターを渡して、任意の量とタイプのパラメーターで動作できるように、汎用にすることは可能ですか?

どんな助けでも大歓迎です!

4

2 に答える 2