小编arc*_*880的帖子

在backgroundworker运行时显示等待光标

在我的Windows应用程序启动期间,我必须调用Web服务来检索一些默认数据以加载到我的应用程序中.在加载表单期间,我运行后台工作程序来检索此数据.我想显示等待光标,直到检索到这些数据.我该怎么做?

我已经尝试在调用backgroundworker运行之前设置等待光标.当我报告100的进度时,我将其设置回默认光标.等待光标出现但是当我移动鼠标时它会消失.

环境:

  • Windows 7 Pro 64位
  • VS2010 C#.NET 4.0
  • Windows窗体

编辑:我按照Jay Riggs建议的方式设置光标.它只有在我不移动鼠标时才有效.

**更新:我创建了一个单击按钮,执行以下操作:当我按下按钮并单击并移动鼠标时,无论我是否移动鼠标,都会出现等待光标.

void BtnClick()
{
  Cursor = Cursors.WaitCursor;
  Thread.Sleep(8000);
  Cursor = Cursors.Default;
}
Run Code Online (Sandbox Code Playgroud)

如果我执行以下操作:我看到等待光标,当我移动鼠标时,它会消失在窗体内.如果我移动到状态栏或菜单栏,则会出现等待光标.

Cursor = Cursors.WaitCursor;
if (!backgroundWorker.IsBusy)
{
  backGroundWorker.RunWorkerAsync();
}

void backGroundWorkerDoWork(object sender, DoWorkEventArgs e)
{
  Thread.Sleep(8000);
}

void backGroundWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
  Cursor = Cursors.Default;
}
Run Code Online (Sandbox Code Playgroud)

如果我执行以下操作:等待光标出现,当我移动鼠标时它仍然出现,但有时在文本字段中移动时会闪烁关闭和打开.虽然光标变为等待光标,但它不会阻止您单击任何内容.

if (!backgroundWorker.IsBusy)
{
  backGroundWorker.RunWorkerAsync();
}

void backGroundWorkerDoWork(object sender, DoWorkEventArgs e)
{
  UseWaitCursor = true;
  Thread.Sleep(8000);
}

void backGroundWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
  UseWaitCursor = false;
}
Run Code Online (Sandbox Code Playgroud)

c# cursor backgroundworker wait

16
推荐指数
3
解决办法
6万
查看次数

如何以编程方式在 .NET Web 服务上的 IIS 中设置集成 Windows 身份验证?

我有一个 Web 服务项目,需要在安装后将其设置为使用集成 Windows 身份验证。通常,我会安装 Web 服务,然后手动转到 IIS 并确保选中“集成 Windows 身份验证”框。必须有一种方法可以通过代码来做到这一点。我已经查找过使用 Installer 类。看起来这是我可以使用的东西,但我没有找到任何关于在 IIS 中以编程方式设置属性的内容。

c# windows authentication iis-6 integrated

5
推荐指数
1
解决办法
5331
查看次数

如何从C#Web服务检索客户端的PC名称

我有在单独的服务器计算机上运行的C#Web服务。在Web服务上使用特定方法时,我希望能够检索客户端计算机名称。我在网上搜索过,有人提到如果客户端连接到路由器,则很难检索客户端计算机名称。

更新:如果无法解决路由器问题,我将如何获得客户端的信息(EI ip地址,计算机名称,...等等)。

c# web-services

1
推荐指数
1
解决办法
7165
查看次数

在C#中线程化2个Web服务调用和组合结果数据的最佳方法是什么?

什么是线程化2个进程并将结果数据与结果调用相结合的最佳方法?我目前正在与2个Web服务连接.我想在一个线程中将一个Web服务A称为DataA.然后在另一个线程中为DataB调用Web服务B. 然后,我需要从DataA和DataB检索特定信息以创建DataC.我还需要能够在任何时候取消整个过程.

我一直在研究使用ThreadPool但是没有办法取消任何ThreadPool线程.

更新:目前使用C#.NET 4.0

c# multithreading

1
推荐指数
1
解决办法
172
查看次数