我有一个DataTable,完全填充,我想设置为DatagridView:
gdv.DataSource = dt;
Run Code Online (Sandbox Code Playgroud)
然而,这非常缓慢.DataTable的填充速度非常快,但上面这一行需要很长时间.有没有办法加快速度或在另一个线程中执行它?
在这一点之后没有互动.只是上面的简单陈述!
谢谢.
我正在阅读这篇关于MVVM的
MSDN文章.我现在正在看图#15中的RelayCommand.假装我想测试这个SaveCommand.我该怎么办?我正在使用NUnit和Rhino Mocks 3.6
我使用continue语句来创建这个简单的程序并获得所需的输出.
for(m=1;m<=3;m++)
{
for(n=1;n<=2;n++)
{
if(m==n)
continue;
cout<<m<<" "<<n<<endl;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
1 2
2 1
3 1
3 2
Run Code Online (Sandbox Code Playgroud)
现在我想要它而不使用coninue语句.有什么方法可以做到吗?
我有一个类似战舰的程序,其中有一个10 x 10的网格按钮。在程序开始时,我希望所有按钮的文本都更改为“ ---”,这表明没有人在该坐标处射击。我似乎找不到一种在一个循环中重命名所有按钮的方法。所有按钮的名称均为b00,b01,b02 ...,显示其坐标。第一个数字是行,第二个数字是列。(即b69代表第7行,第10列)。
希望能对您有所帮助!
先感谢您!
路加
我想创建包含有关项目的详细信息的面板(包括左侧的缩略图),然后将它们添加到可滚动列表中。很像 iPhone 上的 iTunes 显示可用应用程序列表的方式。
我已经做了一些搜索,但到目前为止还没有找到任何帮助。
有没有人有任何想法或链接到他们想与我分享的样本。
提前致谢,罗布
我在VS 2010,.Net 4.0工作.在Windows窗体应用程序中,这没关系:
Image img = Image.FromStream(imagePart.GetStream());
Run Code Online (Sandbox Code Playgroud)
但是,在Wpf应用程序中,Image类来自System.Windows.Controls,这是无效的,因为它没有FromStream方法的定义.在Windows窗体中,Image类是System.Drawing.Image.
有没有办法在Wpf应用程序中使用FromStream?
我使用组合框,不受 C# 中数据源的限制。
cmbBox.Items.Add("apple");
cmbBox.Items.Add("orange");
cmbBox.Items.Add("banana");
Run Code Online (Sandbox Code Playgroud)
现在我想将 SelectedIndex 设置为最终添加“banana”,但不能使用 cmbBox.SelectedIndex = cmbBox.Items.count -1; 因为组合框已排序!
请问有什么提示吗?
我的ChangeValues服务器端事件每 5 秒发生一次,但在客户端,我只看到number变量的第一个值。见下面的代码
@page "/"
<button class="btn btn-primary" @onclick="ChangeValues">Click me</button>
<b>@number</b>
@code {
double number;
private Random rnd = new Random();
private System.Threading.Timer _timer;
void ChangeValues()
{
number = rnd.NextDouble();
Console.WriteLine(number);
}
private void DoWork(object state)
{
ChangeValues();
}
protected override async Task OnInitializedAsync()
{
_timer = new System.Threading.Timer(DoWork, null, TimeSpan.Zero,
TimeSpan.FromSeconds(5));
}
}
Run Code Online (Sandbox Code Playgroud) 我有一些复杂的计算需要一段时间才能完成。(是的,我知道,客户端听起来可能不是执行它们的理想场所,但有充分的理由。)我希望页面随着计算的进行而更新结果。随着计算的进行,我可以让 UI 重新渲染,但不能正确更新结果。
请注意,计算本身并不是异步的,将它们包装起来Task.Run似乎没有帮助。这是演示问题的代码的简化版本:
@page "/AsyncTest"
<button type="button" class="btn btn-primary" @onclick="@(e => RunOnClick(e))">Run</button>
<br />
<div>Percent Complete = @PercentComplete %</div>
@code {
private int PercentComplete = 0;
private async Task RunOnClick(MouseEventArgs e) {
for (PercentComplete = 0; PercentComplete < 100; PercentComplete += 20) {
System.Console.WriteLine($"LongCalculation: PercentComplete = {PercentComplete}");
await Task.Run(() => Calculation()); // Does not work.
//await CalculationAsync(); // This works.
StateHasChanged();
}
}
private void Calculation() => System.Threading.Thread.Sleep(500);
private async Task CalculationAsync() => await Task.Delay(500); …Run Code Online (Sandbox Code Playgroud) 我正在使用 Blazor WASM 开发简单的在线游戏。最近我发现 Blazor 客户端是单线程的,这对于我的大多数算法来说都是灾难性的。我想实现比权威服务器更好的架构,并能够在客户端运行代码(用于滞后补偿等......)。各框架在线交流的思路如下:
因此,在客户端,基本上有三个线程 - 第一个用于在按下按键时向服务器发送操作,第二个用于从服务器接收消息,第三个用于执行游戏代码。正如你所看到的,一个线程对我来说是不够的:D
附加信息 - 在线通信是通过 SignalR 实现的。
我知道 .net 8 中可以实现多线程(但遗憾的是我等不及了)。我尝试过预发布,但没有运行。
非常感谢任何帮助或提示;)
提供代码以便更好地理解。
//Executed 60 per second
private async Task Frame()
{
//serialization of actions
json = JsonConvert.SerializeObject(myActions);
Task.Run(() => hubConnection.SendAsync("ExecuteList", json, id)); //still
the same thread
myActions.Clear();
ToolsGame.ProceedFrame(gvars, now);
StateHasChanged();
}
Run Code Online (Sandbox Code Playgroud)
SignalR 监听来自服务器的消息:
hubConnection.On<string>("ExecuteList", (actionMethodNamesJson) =>
{
ExecuteList(actionMethodNamesJson); //deserialize actions from all clients
StateHasChanged();
});
Run Code Online (Sandbox Code Playgroud) c# ×6
winforms ×4
blazor ×3
wpf ×2
async-await ×1
button ×1
c++ ×1
combobox ×1
datagridview ×1
datatable ×1
image ×1
list ×1
loops ×1
mvvm ×1
panel ×1
relaycommand ×1
rhino-mocks ×1
text ×1