C # принципиально не переносится?

Я использую C # некоторое время, а недавно начал работать над добавлением параллелизма в свой побочный проект. Итак, согласно Microsoft, чтение и запись в целые числа и даже числа с плавающей запятой являются атомарными

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

Проблема только усугубляется тем фактом, что 'int' всегда 32-битное. Есть много встроенных устройств, которые не могут атомарно выполнить 32-битную запись.

Кажется, это фундаментальная ошибка C #. Гарантировать атомарность этих типов данных невозможно переносимо.

Как эти гарантии атомарности предназначены для реализации на архитектурах, где нет FPU или 32-битной записи?

16
задан Michael Petrotta 29 September 2010 в 19:20
поделиться