FileStream
缓冲需要写入的字节。如果缓冲区已满,则将所有字节写入(刷新)到文件中。这个写过程可能需要一些时间。
由于添加到FileStream
的每个字节都可能导致Flush
,因此写入函数具有async version。可以在不等待写入完成的情况下写入流。
Class StreamWriter可以更轻松地将文字写入FileStream
。将数据写入StreamWriter
会导致数据写入基础流,从而可能导致Flush
。
这使得像StreamWriter.Write(int)
这样的函数可能会变慢。但是,除了写字符或字符串之外,没有这些函数的异步版本。甚至有WriteLine
的异步版本。
当我编写像整数和双精度这样的小对象时,不需要这些函数吗?
答案 0 :(得分:0)
在我看来,它更多地取决于应用程序细节,(function () {
'use strict';
angular
.module('blabla')
.directive('showActiveTask', showActiveTask);
showActiveTask.$inject = ['$uibModal'];
function showActiveTask($uibModal) {
return {
//replace: true,
restrict: 'E',
scope: {
taskData: '='
},
template: '<button type="submit"' +
' class="btn grey lighten-1 btn-raised white-text btn-sm"' +
' ng-click="open()">' +
' <span class="hidden-xs hidden-sm">View assigned tasks</span>' +
'</button>',
link: linkFunc
};
function linkFunc(scope, element, attrs) {
var vm = this;
vm.showLabel = false;
console.log(scope);
scope.open = function () {
vm.modalInstance = $uibModal.open({
templateUrl: 'blabla.html',
size: 'lg',
controller: scope.taskData,
backdrop: true,
resolve: {
console.log('babla')
}
}
}).result.then(function () {
console.log("wanna switch");
});
console.log(scope)
};
scope.clear = function () {
console.log('close modal');
vm.modalInstance.close();
};
}
}
})();
实例缓冲区大小,服务器硬件,服务器配置和预期的负载配置文件,而不是正在编写的小数据。您可以创建两个版本的应用程序(一个使用StreamWriter
,另一个使用StreamWriter.Write(string)
,StreamWriter.WriteAsync(string)
最终调用它们)并测试此实现细节如何影响吞吐量,内存使用等。
有关详情,请查看Stephen Toub撰写的http://brilliantbritz.com/2014/08/09/create-a-dynamic-modal-directive-in-minutes-using-angular-and-ui-bootstrap/文章和MSDN上TextWriter.Write(int)
参数页面的Should I expose asynchronous wrappers for synchronous methods?构造函数。