Создание новой парализованной нити - PullRequest
1 голос
/ 05 апреля 2011

Я хочу запустить свою функцию в другом потоке, но проблема в том, что функции нужен параметр.

Если я попробую ее с функцией, которая не нуждается в параметрах (CPUPlay ()), то все в порядке:

private void OpenNewThread(bool open)
    {
        Thread thread = new Thread(new ThreadStart(CPUPlay));
    }

Но если я попробую это с функцией, которая нуждается в параметрах, она не будет работать:

private void OpenNewThread(bool open)
{
    Thread thread = new Thread(new ParameterizedThreadStart(CloseOpenAnimation));
    thread.Start(open);
}

Так как я могу запустить функцию с параметрами в другом потоке

Ответы [ 3 ]

2 голосов
/ 05 апреля 2011

Соответствует ли ваша функция этой подписи?

public void CloseOpenAnimation(object argument)
1 голос
/ 05 апреля 2011

Обман и использование делегатов

private void OpenNewThread(bool open)
{
    Thread thread = new Thread(new ThreadStart(
        () => CloseOpenAnimation(open)));
    thread.Start();
}
0 голосов
/ 05 апреля 2011

Попробуйте объект BackgroundWorker.Существует параметр объекта Аргумент, который вы можете использовать.

BackgroundWorker bg = new BackgroundWorker();
bg.DoWork+=new DoWorkEventHandler(bg_DoWork);
bg.RunWorkerAsync(5);

static void  bg_DoWork(object sender, DoWorkEventArgs e)
{
            int j = (int)e.Argument;
}

, где e.Argument имеет тип объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...