Доступ к GUI и способам занимают много времени - PullRequest
0 голосов
/ 16 сентября 2011

Это приложение Windows Form

И вид кода:

public bool Simulation(string param1, bool param2)
        {
            //code1
            do
            {
                bool success = reader.Launch();
                //code2
            } while (!success);
        }

Launch() метод занимает много времени, но я должен ждать в этом месте ("code2") одновременно с доступом к GUI.Теперь Launch() блокирует этот доступ.

Как я могу это сделать?

1 Ответ

1 голос
/ 16 сентября 2011

Немного сложно понять, что именно вам нужно, но звучит так, будто вы хотите запустить весь метод Simulation в отдельном потоке от вашего потока пользовательского интерфейса.Если это так, вы можете просто сделать что-то вроде этого:

// From UI thread e.g. button click event handler
bool result; 

Task t = Task.Factory.StartNew(() => 
    {
        result = Simulation(p1, p2);
    });

Обратите внимание, что результат будет заполнен из второго потока ... не ясно из вопроса, если вам нужен доступ к результату, илииз какой нити.Если вы можете уточнить это, я могу дать более конкретные указания о том, как / где проверить результат.

...