2012-07-26 107 views
2

我正在用C#編寫一個應用程序,它將編譯和執行用C,C++或Java編寫的外部代碼。在這方面,我有幾個問題要問及以下是我迄今所做的研究:以C#編譯和執行外部代碼

  1. 將有將承載將收到用戶提交的代碼請求的應用程序的服務器。這些請求將在特定的套接字上發送。
  2. 將有一個接收器線程將列隊所有這樣的請求。
  3. 將有消費者線程將從隊列中出隊並編譯和執行程序(提交的代碼)。編譯和執行時,將從命令行使用適當的編譯器和加載器,該命令將作爲C#應用程序的進程執行。
  4. 截至目前,可以假定安全問題,如沙箱,不公開服務器等已被/將在以後考慮。我主要關注這個執行邏輯。

我有以下問題要問:

  1. 還能有這樣做/我是不是做錯什麼更好的辦法?
+0

我意識到這個問題可能會引發爭論和討論。我已經進一步編輯了這個問題以刪除這些文本。 – Cik 2012-08-09 19:15:00

回答

3
  1. 方法在紙上看起來不錯,但它主要取決於實施。
  2. 儘可能多的,直到機器的能力。 OS將處理它們。
  3. 只要你讓它氣密,它並不重要:惡意/格式錯誤/明顯錯誤的代碼將提交:Java不能造成那麼大的破壞,但C/C++有點危險。