本文整理汇总了C#中ConcurrentBag.FirstOrDefault方法的典型用法代码示例。如果您正苦于以下问题:C# ConcurrentBag.FirstOrDefault方法的具体用法?C# ConcurrentBag.FirstOrDefault怎么用?C# ConcurrentBag.FirstOrDefault使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConcurrentBag
的用法示例。
在下文中一共展示了ConcurrentBag.FirstOrDefault方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetUriInParallelTest
public void GetUriInParallelTest()
{
// arrange
var request = new BasicRequest("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", new[] {"a", "b", "c"});
var tileInfo = new TileInfo {Index = new TileIndex(3, 4, "5")};
var urls = new ConcurrentBag<Uri>(); // List is not thread save
// act
var requests = new List<Func<Uri>>();
for (var i = 0; i < 100; i++) requests.Add(() => request.GetUri(tileInfo));
Parallel.ForEach(requests, r => urls.Add(r()));
// assert
Assert.True(urls.FirstOrDefault(u => u.ToString() == "http://b.tile.openstreetmap.org/5/3/4.png") != null);
}
示例2: GetUriMultiThreadedTest
public void GetUriMultiThreadedTest()
{
// arrange
var request = new BingRequest(
"http://t{s}.tiles.virtualearth.net/tiles/r{quadkey}.jpeg?g={apiversion}&token={userkey}",
"pindakaas", "555", new[] { "000", "111" });
var tileInfo = new TileInfo { Index = new TileIndex(3, 4, "5") };
var urls = new ConcurrentBag<Uri>(); // List is not thread save
// act
var requests = new List<Func<Uri>>();
for (var i = 0 ; i < 100; i++) requests.Add(() => request.GetUri(tileInfo));
Parallel.ForEach(requests, r => urls.Add(r()));
// assert
Assert.True(urls.FirstOrDefault(u => u.ToString() == "http://t111.tiles.virtualearth.net/tiles/r00211.jpeg?g=555&token=pindakaas") != null);
}