如何在netcoreapp1.1中使用TextWriter.Synchronized

时间:2017-06-22 12:29:12

标签: c# .net-core

我想在我的应用中使用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' 

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

由于.Net Core 1.1上不存在TextWriter.Synchronized,您必须自己实现它。首先,您可以使用the .Net Core 2.0 implementation。您无法直接使用该代码,因为它广泛使用[MethodImpl(MethodImplOptions.Synchronized)],而.Net Core 1.1也不支持该代码。但是你可以在每种方法中用lock (this)替换它。