我想在我的应用中使用TextWriter.Synchronized方法。我的目标框架是:netcoreapp1.1
。
这是我想编译的程序:
using System;
using System.IO;
namespace program
{
class Program
{
static void Main(string[] args)
{
using (var log = File.CreateText("out.log"))
{
var syncedLog = TextWriter.Synchronized(log);
}
}
}
}
这是我的csproj文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
</Project>
不幸的是,这不起作用:
> dotnet run
Program.cs(12,47): error CS0117: 'TextWriter' does not contain a definition for 'Synchronized'
我该如何解决这个问题?
答案 0 :(得分:1)
由于.Net Core 1.1上不存在TextWriter.Synchronized
,您必须自己实现它。首先,您可以使用the .Net Core 2.0 implementation。您无法直接使用该代码,因为它广泛使用[MethodImpl(MethodImplOptions.Synchronized)]
,而.Net Core 1.1也不支持该代码。但是你可以在每种方法中用lock (this)
替换它。