2014-11-04 3 views
2

Меня спросили сегодня на собеседовании о том, как реализовать свою собственную тему. В качестве намека мне сказали, что рассматривать Runnable - это одно, что нужно учитывать, и что другие?Реализовать свою собственную тему в C#

Я был полностью в тупике, но даже после изучения его онлайн, я до сих пор не знаю, что ответ, или если это был даже действительный вопрос. Я склоняюсь к последней.

Так что мой вопрос:

Какие вещи вы должны рассмотреть, если вы хотите написать свою собственную реализацию класса Thread в C#?

+2

В C# нет интерфейса 'Runnable'. –

+2

Thread - это примитив нижнего уровня, чем эквивалент 'Runnable' C#' 'Task'. Возможно, Runnable фактически эквивалентен «Action», но не позволяет разделить волосы. Я хотел бы попросить интервьюера рассказать о ожиданиях такого открытого вопроса. – Gusdor

+0

Точно, что заставляет меня думать, что это был неверный вопрос. Есть что-то подобное? Это было четкое интервью на C#, поэтому не было уверенности в том, как Runnable из Java появился в нем. –

ответ

-1

Первый, Runnable, вероятно, относится к Action. Действие - это тип делегата, используемый для хранения ссылки на метод. Вы используете это, чтобы сообщить потоку, какой метод начать.

Я ожидаю, что они только хотели, чтобы вы проиллюстрировали, как;

  • начать поток с делегата (вот как Runnable входит в бой).

-или-

  • график работы, выполняемые на рабочем потоке. Для этого я бы воспользовался вызовом Task.Run(new Action(....)). Это лаконично и современно.

Я бы всегда делал последнее, пока не дал указание детализировать нижний уровень Thread класс.

+0

Я * очень * сомневаюсь в ответе на вопрос «как реализовать этот язык самостоятельно», «использовать существующую конструкцию языка».Вопрос в том, что бы вы сделали *, если бы вы были ответственным за построение этой языковой конструкции *. – Servy

+0

@Servy вы знаете, что на самом деле? Свидетельством «Runnable» в качестве подсказки является то, что отталкивало меня от детализации вызовов WINAPI, которые требуются. – Gusdor

+0

Конечно, я не могу это знать. Но доказательство довольно убедительно, что ответ на вопрос «как реализовать X с нуля» не означает «не применять X с нуля». На самом деле это не отвечает на вопрос. Он отказывается отвечать на него. – Servy

Смежные вопросы