Поток Silverlight 4RC - может ли новый поток возвращать поток пользовательского интерфейса - PullRequest
0 голосов
/ 26 марта 2010

Допустим, у меня есть ситуация в Silverlight, когда есть фоновый поток (гарантированно НЕ являющийся потоком пользовательского интерфейса), выполняющий некоторую работу, и он должен создать новый поток. Примерно так:

//running in a background thread
Thread t = new Thread(new ThreadStart(delegate{});
t.Start();

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

Учитывая, что я не настолько осведомлен о модели потоков Silverlight, есть ли опасность вызова new Thread(), дающего мне поток пользовательского интерфейса?

Мотивация или то, чего я пытаюсь достичь, не важно - я не хочу модификацию существующего кода. Я просто хочу знать, есть ли возможность неожиданно вернуть поток пользовательского интерфейса.

Приветствия

Ответы [ 3 ]

2 голосов
/ 26 марта 2010

Нет, это невозможно. new Thread() будет новым потоком, независимо от того, что делают другие потоки.

1 голос
/ 26 марта 2010

OK, Поэтому я думаю, что вопрос может сводиться к тому, возможно ли когда-либо поток пользовательского интерфейса Silverlight находиться в пуле потоков, из которого выделяются потоки, когда я вызываю "new Thread ()".

Я провел немало поисков, но не могу найти однозначного ответа о том, как на самом деле работает многопоточность Silverlight. (Существует немало мнений, но они не всегда согласны).
Однако может показаться, что silverlight использует пул потоков, поэтому вызов «new Thread ()» не всегда может создать новый поток (вы можете выделить существующий из пула) в зависимости от того, как управляется пул / в возрасте и т. д.

В некоторых блогах, которые я видел, тема может даже зависеть от браузера, в котором размещено приложение silverlight?

0 голосов
/ 20 июля 2011

Нет, даже если поток пользовательского интерфейса silverlight не используется, в этом потоке выполняется цикл сообщений, ожидающий события пользовательского интерфейса. Таким образом, поток пользовательского интерфейса всегда работает и никогда не будет возвращен пулом потоков.

...