Skip to content

RU CSharp Runtime

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Движок C#-скриптов

Исходный код компилирует Roslyn. Скомпилированный сценарий выполняет обычный .NET 10/CoreCLR.

Статическое поле принадлежит типу и общее для его экземпляров в пределах одного выполнения. Здесь каждый запуск .csx, .cs или .csproj изолирует пользовательские типы и их static-поля; кэширование скомпилированного кода не сохраняет их между запусками. Статические данные общих библиотек .NET и хоста остаются общими: не храните в них данные конкретного персонажа.

В контролируемые операторы и циклы добавляются точки отмены. finally сохраняет освобождение ресурсов. Блокирующий сторонний вызов, который не поддерживает отмену, не превращается автоматически в отменяемый. Для длительного ожидания используйте WaitAsync, а для собственных асинхронных операций передавайте Cancellation.

Динамически скомпилированные сценарии имеют возможности обычного .NET-кода. Разрешения файла и игрового API определяются локальным процессом и выбранной сессией.

Запрос отмены кооперативен. Task.Delay без передачи Cancellation, ожидание сторонней задачи и библиотечный вызов без поддержки отмены могут продолжаться после нажатия Stop. После запроса отмены дальнейшие игровые действия этого выполнения запрещены; это не означает принудительного мгновенного завершения любого .NET-кода.

Clone this wiki locally