C# Передача структуры без копирования в асинхронную c функцию - PullRequest
3 голосов
/ 07 мая 2020

Я хочу предотвратить копирование структуры.

Есть обходной путь?

unsafe struct Buffer
{
    public fixed byte buffer[40960000]; // big size buffer, sample
}

class Reader
{
    Reader()
    {
        var data = new Buffer();
        Read(ref data);     // <- No Copy, but not asynchronous.
        ReadAsync(data);    // <- Copy..
     // ReadAsync(ref data) <- impossible. but need.
    }

    void Read(ref Buffer data)
    {
        // Need asynchronous.
    }

    async void ReadAsync(Buffer data)
    {
        // Poor efficiency.
    }
}

Это код, похожий на мою ситуацию.

Я хочу эффективно обрабатывать структуры, занимающие много памяти.

...