Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
8619882a
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8619882a
编写于
10月 16, 2014
作者:
M
mattwar
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Change FileTextLoader to open FileStream for asynchronous IO. (changeset 1355769)
上级
9f9b359e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
2 deletion
+21
-2
Src/Compilers/Core/Desktop/FileUtilities.cs
Src/Compilers/Core/Desktop/FileUtilities.cs
+18
-0
Src/Workspaces/Core/Desktop/Workspace/FileTextLoader.cs
Src/Workspaces/Core/Desktop/Workspace/FileTextLoader.cs
+2
-1
Src/Workspaces/Core/Desktop/Workspace/MSBuild/ProjectFile/ProjectFileLoader.cs
...esktop/Workspace/MSBuild/ProjectFile/ProjectFileLoader.cs
+1
-1
未找到文件。
Src/Compilers/Core/Desktop/FileUtilities.cs
浏览文件 @
8619882a
...
...
@@ -296,6 +296,24 @@ internal static FileStream OpenRead(string fullPath)
}
}
internal
static
FileStream
OpenAsyncRead
(
string
fullPath
)
{
Debug
.
Assert
(
PathUtilities
.
IsAbsolute
(
fullPath
));
try
{
return
new
FileStream
(
fullPath
,
FileMode
.
Open
,
FileAccess
.
Read
,
FileShare
.
Read
,
4096
,
FileOptions
.
Asynchronous
);
}
catch
(
IOException
)
{
throw
;
}
catch
(
Exception
e
)
{
throw
new
IOException
(
e
.
Message
,
e
);
}
}
/// <summary>
/// Used to create a file given a path specified by the user.
/// paramName - Provided by the Public surface APIs to have a clearer message. Internal API just rethrow the exception
...
...
Src/Workspaces/Core/Desktop/Workspace/FileTextLoader.cs
浏览文件 @
8619882a
...
...
@@ -70,8 +70,9 @@ public override async Task<TextAndVersion> LoadTextAndVersionAsync(Workspace wor
// Allowing other theads/processes to write or delete the file is essential for scenarios such as
// Rename refactoring where File.Replace API is invoked for updating the modified file.
TextAndVersion
textAndVersion
;
using
(
var
stream
=
FileUtilities
.
OpenRead
(
this
.
path
))
using
(
var
stream
=
FileUtilities
.
Open
Async
Read
(
this
.
path
))
{
System
.
Diagnostics
.
Debug
.
Assert
(
stream
.
IsAsync
);
var
version
=
VersionStamp
.
Create
(
prevLastWriteTime
);
var
memoryStream
=
await
this
.
ReadStreamAsync
(
stream
,
cancellationToken
:
cancellationToken
).
ConfigureAwait
(
false
);
...
...
Src/Workspaces/Core/Desktop/Workspace/MSBuild/ProjectFile/ProjectFileLoader.cs
浏览文件 @
8619882a
...
...
@@ -70,7 +70,7 @@ private static async Task<MemoryStream> ReadFileAsync(string path, CancellationT
{
MemoryStream
memoryStream
=
new
MemoryStream
();
var
buffer
=
new
byte
[
1024
];
using
(
var
stream
=
FileUtilities
.
OpenRead
(
path
))
using
(
var
stream
=
FileUtilities
.
Open
Async
Read
(
path
))
{
int
bytesRead
=
0
;
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录