VB2004에서 C#으로 VB2010을 사용하여 게임을 만들었습니다. 게임은 각 플레이어에 대한 스레드를 만들고 플레이어가 만든 LUA 코드를 실행합니다.스레드 스로틀 C#
각 LUA 코드는 스레드 차단하고, 스레드가 종료 된 경우에만 나는 컴퓨터가 현재 후 과열로 CPU 사용량을 제한 할
을 (루아 스크립트가 무한 루프를 포함한다) 종료한다 몇 시간 동안 100 % CPU로 실행.
스레드를 제어하지 않고 어떻게 조절할 수 있습니까? 쓰레드 매니저가 강제로 suspend/resume을 할 수 있기를 바랬지 만 그것들은 쓸모 없게되고 있습니다. 그리고 실행중인 LUA 코드를 중단시키기 때문에 예외를 던지기를 원하지 않습니다.
아이디어가 있으십니까?
감사합니다.
본질적으로 메인 루프 인 C-Sharp 코드를 호출 할 수 있습니까? LUA에 고해상도 타이머가 있는지 확실하지 않지만 C-Sharp는 분명히 그렇습니다. 따라서 LUA의 주된 방법은 프레임 사이의 델타를 허용 할 수 있습니다. 그것을 스스로 계산합니다. – Matthew
현재 작동하는 방식은 모든 게임 논리가 C-Sharp로 수행된다는 것입니다. LUA 스레드는 게임에 대한 정보를 얻고 LUA에서 호출 할 수있는 .NET 함수 (함수 매핑의 일종)를 통해 게임에 제어 정보를 반환 할 수 있습니다. 네가 묻는 것을 내가 이해하는지 모르겠다. 도움이 되니? – pcaston2
LUA가 게임 로직의 대부분을 수행 할 것이라는 인상을 받았습니다. C-Sharp가 논리를 수행하면 LUA는 무엇을 추가합니까? – Matthew