很抱歉发布这样一个菜鸟问题,但我找不到答案。我还不太擅长单元测试,所以我不确定。这是返回线程安全的字节 [] 的最佳方法吗?也可以在这里初始化数组并在另一个线程中修改它吗?
public async Task<byte[]> GetData()
{
var _buffer = new byte[1024];
try { await Task.Run(() => ModifyArray(_buffer)); }
catch { return null;}
return _buffer.ToArray();
}
我知道 ModifyArray(byte[]) 应该返回值,但它实际上是一个套接字接收方法。我也在看:
public async Task<byte[]> GetData()
{
return Task.Run(() =>
{
var _buffer = new byte[1024];
try { ModifyArray(_buffer); }
catch { return null;}
return _buffer.ToArray();
});
}
或者我应该像这样将 ToArray() 移到外面
public async Task<byte[]> GetData()
{
return (Task.Run(() => {...});).ToArray();
}
任何见解将不胜感激。