110,533
社区成员
发帖
与我相关
我的任务
分享
private int foo(int seed)
{
Random r = new Random(seed);
string s = "";
int i = 0;
while (s != "this")
{
char c1 = (char)r.Next(67, 122);
char c2 = (char)r.Next(67, 122);
char c3 = (char)r.Next(67, 122);
char c4 = (char)r.Next(67, 122);
s = new string(new char[] { c1, c2, c3, c4 });
i++;
}
return i;
}
int[] results =
Enumerable.Range(0, 10)
.Select(x => foo(unchecked((int)(DateTime.Now.Ticks >> x)))).ToArray();
return "Result is: " + string.Join(", ", results) + ".";
int[] results =
await Task.WhenAll(Enumerable.Range(0, 10)
.Select(x => Task.Factory.StartNew(() => foo(unchecked((int)(DateTime.Now.Ticks >> x))))));
return "Result is: " + string.Join(", ", results) + ".";
private async Task<string> bar1()
{
int[] results =
await Task.WhenAll(Enumerable.Range(0, 10)
.Select(x => Task.Factory.StartNew(() => foo(unchecked((int)(DateTime.Now.Ticks >> x))))));
return "Result is: " + string.Join(", ", results) + ".";
}
private async void Button1_Click(object sender, RoutedEventArgs e)
{
this.textBox1.Text = await bar1();
}
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="WpfApplication1.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="async" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Click="Button1_Click"/>
<TextBox x:Name="textBox1" HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="0,26,0,0" Width="509" Height="42"/>
<Button Content="sync" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="0,67,0,0" Click="Button2_Click"/>
<TextBox x:Name="textBox2" HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="0,93,0,0" Width="509" Height="42"/>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button1_Click(object sender, RoutedEventArgs e)
{
this.textBox1.Text = await bar1();
}
private void Button2_Click(object sender, RoutedEventArgs e)
{
this.textBox2.Text = bar2();
}
private int foo(int seed)
{
Random r = new Random(seed);
string s = "";
int i = 0;
while (s != "this")
{
char c1 = (char)r.Next(67, 122);
char c2 = (char)r.Next(67, 122);
char c3 = (char)r.Next(67, 122);
char c4 = (char)r.Next(67, 122);
s = new string(new char[] { c1, c2, c3, c4 });
i++;
}
return i;
}
private async Task<string> bar1()
{
int[] results =
await Task.WhenAll(Enumerable.Range(0, 10)
.Select(x => Task.Factory.StartNew(() => foo(unchecked((int)(DateTime.Now.Ticks >> x))))));
return "Result is: " + string.Join(", ", results) + ".";
}
private string bar2()
{
int[] results =
Enumerable.Range(0, 10)
.Select(x => foo(unchecked((int)(DateTime.Now.Ticks >> x)))).ToArray();
return "Result is: " + string.Join(", ", results) + ".";
}
}
}
using System;
using System.Linq;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
public delegate string myString();
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem(h =>
{
var query = from x in Enumerable.Range(0, 10).AsParallel()
select x + "->" + foo(unchecked((int)(DateTime.Now.Ticks >> x)));
Console.WriteLine("Result is: {0}.", string.Join(", ", query.ToArray()));
});
Console.ReadKey();
}
private static int foo(int seed)
{
Random r = new Random(seed);
string s = "";
int i = 0;
while (s != "this")
{
char c1 = (char)r.Next(67, 122);
char c2 = (char)r.Next(67, 122);
char c3 = (char)r.Next(67, 122);
char c4 = (char)r.Next(67, 122);
s = new string(new char[] { c1, c2, c3, c4 });
i++;
}
return i;
}
}
}