Как импортировать процесс C и убить?C#

Место общения программистов C#
Ответить
Anonymous
 Как импортировать процесс C и убить?

Сообщение Anonymous »

В моем проекте C# есть файл. Затем я звоню в RegisterCallback с помощью делегата (передавая метод). Недедачим поток связывает гнездо с портом, и когда данные получены, он вызывает делегат. Я попытался сделать делегат статичным и использовать gc.keepalive () , но ни один из них не работал. Интересно, что добавление задержки на 100 м заставляет его работать. Я не могу понять, что происходит.
Это простой код: < /p>
[DllImport("test.so", EntryPoint = "start", CallingConvention = CallingConvention.Cdecl)]
public static extern void Start();

[DllImport("test.so", EntryPoint = "register_call_back", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterCallback(LogPrint callback);

[DllImport("test.so", EntryPoint = "end", CallingConvention = CallingConvention.Cdecl)]
public static extern void End();

public delegate void LogPrint(byte[] value);
private static LogPrint _log => Print;
public static void Print(byte[] value) {
var str = Encoding.Default.GetString(value);
}

static void Main(string[] args)
{
Start();
RegisterCallback(_log);
Wait(100*1000);
End();
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... ll-process
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»