C# 使用FileStream创建文件将返回InvalidOperationException

C# 使用FileStream创建文件将返回InvalidOperationException,c#,serialization,filestream,C#,Serialization,Filestream,它返回异常,具体在第12行 public void saveToXML() { URL newURL = new URL(); newURL.type = type; newURL.name = name; newURL.info = info; newURL.url = url; newURL.isProtected = isProtected; newURL.amo

它返回
异常
,具体在
第12行

    public void saveToXML()
    {
        URL newURL = new URL();
        newURL.type = type;
        newURL.name = name;
        newURL.info = info;
        newURL.url = url;
        newURL.isProtected = isProtected;
        newURL.amountOfClicks = amountOfClicks;
        XmlSerializer xml = new XmlSerializer(typeof(URL));
        string directory = @"C:\Users\PC-User\Documents\Link" + newURL.name + ".xml";
        using (var file = File.Create(directory))
        {
            xml.Serialize(file, url);
        }
    }
如有需要,在异常消息中提供更多详细信息:

不应在UI线程上执行同步操作。考虑在任务.Run.

中包装此方法
谢谢

考虑一下这样的事情吧:

public async Task saveToXml(){
    string directory = @"C:\Users\PC-User\Documents\Link" + newURL.name + ".xml";
    await Task.Run(()=>
    {
        Task.Yield();
        using (var file = File.Create(directory))
        {
            xml.Serialize(file, url);
        }
    });
}

如果有错误日志,您应该发布它