本文整理汇总了C#中Stopwatch.?.Stop方法的典型用法代码示例。如果您正苦于以下问题:C# Stopwatch.?.Stop方法的具体用法?C# Stopwatch.?.Stop怎么用?C# Stopwatch.?.Stop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Stopwatch
的用法示例。
在下文中一共展示了Stopwatch.?.Stop方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StartInternal
private void StartInternal( RecordSettings settings ) {
try {
_stopwatch = _stopwatch ?? new Stopwatch();
_stopwatch.Reset();
_stopwatch.Start();
StopWaiter.Reset();
if ( !Directory.Exists( settings.OutputPath ) ) Directory.CreateDirectory( settings.OutputPath );
while ( Recording ) {
var outfile = Path.Combine( settings.OutputPath, DateTime.Now.ToFileTime().ToString() + ".avi" );
using (var outstream = new VideoFileWriter()) {
var sourceRect = settings.CaptureRectangle;
var w = sourceRect.Width;
var h = sourceRect.Height;
outstream.Open(
outfile,
w,
h,
settings.Fps,
settings.Codec,
settings.Bitrate );
var mpf = settings.SplitInterval * 60000 / settings.Interval;
using ( var bmp = new Bitmap( w, h ) ) {
using ( var gr = Graphics.FromImage( bmp ) ) {
for ( var i = 0; (mpf==null||i < mpf) && Recording; i++ ) {
try {
gr.CopyFromScreen( sourceRect.X, sourceRect.Y, 0, 0, sourceRect.Size );
PreprocessFrame( gr, settings );
gr.Flush();
outstream.WriteVideoFrame( bmp );
settings.OnFrameWritten?.Invoke( _stopwatch.Elapsed );
}
catch { }
Thread.Sleep( settings.Interval );
}
}
}
}
}
}
catch(Exception ex) {
//global
}
finally {
_stopwatch?.Stop();
StopWaiter.Set();
}
}