在我的Windows Phone 8.1应用程序中,我有一个单件服务DataService,应该偶尔下载一些数据.同时在UI上我应该显示收到的数据量.当用户登录应用程序时,将调用DataService.StartGettingData():
void StartGettingData()
{
if (getDataTaskCancellationTokenSource != null)
getDataTaskCancellationTokenSource.Cancel();
getDataTaskCancellationTokenSource = new CancellationTokenSource();
var token = getDataTaskCancellationTokenSource.Token;
Task.Factory.StartNew(async () => await ExecuteCycleAsync(token), token);
}
async Task ExecuteCycleAsync(CancellationToken cancellationToken)
{
while (true)
{
cancellationToken.ThrowIfCancellationRequested();
await LoadDataAsync(cancellationToken);
cancellationToken.ThrowIfCancellationRequested();
await Task.Delay(timeTillNextDownload, cancellationToken);
}
}
Run Code Online (Sandbox Code Playgroud)
当用户在帮助下注销时,此任务将被取消
if (getDataTaskCancellationTokenSource != null)
getDataTaskCancellationTokenSource.Cancel();
Run Code Online (Sandbox Code Playgroud)
包含下载结果的属性如下所示:
List<DataType> Data = new List<DataType>();
public IEnumerable<DataType> Data
{
get { return Data; }
set
{
Data = value.ToList();
OnDataUpdated();
}
}
void OnDataUpdated()
{
var handler = DataUpdated;
if …Run Code Online (Sandbox Code Playgroud) 介绍
我们正试图捕获潜在的内存泄漏BenchmarksDotNet.
为了简单的例子,这里是一个简单的TestClass:
public class TestClass
{
private readonly string _eventName;
public TestClass(string eventName)
{
_eventName = eventName;
}
public void TestMethod() =>
Console.Write($@"{_eventName} ");
}
Run Code Online (Sandbox Code Playgroud)
我们正在通过NUnit测试实现基准测试netcoreapp2.0:
[TestFixture]
[MemoryDiagnoser]
public class TestBenchmarks
{
[Test]
public void RunTestBenchmarks() =>
BenchmarkRunner.Run<TestBenchmarks>(new BenchmarksConfig());
[Benchmark]
public void TestBenchmark1() =>
CreateTestClass("Test");
private void CreateTestClass(string eventName)
{
var testClass = new TestClass(eventName);
testClass.TestMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
测试输出包含以下摘要:
Method | Mean | Error | Allocated |
--------------- |-----:|------:|----------:|
TestBenchmark1 | NA | …Run Code Online (Sandbox Code Playgroud)