相关疑难解决方法(0)

'使用'声明vs'尝试终于'

我有一堆属性,我将使用读/写锁.我可以使用a try finally或a using子句来实现它们.

try finally我之前try,我将获得锁定,然后释放finally.在该using子句中,我将创建一个在其构造函数中获取锁的类,并在其Dispose方法中释放.

我在很多地方使用读/写锁,所以我一直在寻找可能更简洁的方法try finally.我有兴趣听听一些关于为什么不推荐一种方式的想法,或者为什么一种方式可能比另一方更好.

方法1(try finally):

static ReaderWriterLock rwlMyLock_m  = new ReaderWriterLock();
private DateTime dtMyDateTime_m
public DateTime MyDateTime
{
    get
    {
        rwlMyLock_m .AcquireReaderLock(0);
        try
        {
            return dtMyDateTime_m
        }
        finally
        {
            rwlMyLock_m .ReleaseReaderLock();
        }
    }
    set
    {
        rwlMyLock_m .AcquireWriterLock(0);
        try
        {
            dtMyDateTime_m = value;
        }
        finally
        {
            rwlMyLock_m .ReleaseWriterLock();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

方法2:

static ReaderWriterLock rwlMyLock_m  = new ReaderWriterLock();
private DateTime dtMyDateTime_m
public …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading using-statement

74
推荐指数
4
解决办法
5万
查看次数

在我的C#应用​​程序中进行"ping"

我需要我的应用程序来ping我稍后将指定的地址,只需将平均Ping时间复制到Label的.Text即可.

有帮助吗?

编辑:

如果有人有兴趣,我找到了解决方案:

Ping pingClass = new Ping();        
PingReply pingReply = pingClass.Send("logon.chronic-domination.com");
label4.Text = (pingReply.RoundtripTime.ToString() + "ms");
Run Code Online (Sandbox Code Playgroud)

c# ping

13
推荐指数
1
解决办法
3万
查看次数

如何在多行TextBox上打印ping.exe的进度?

我有一个文本框和一个按钮.该按钮调用Ping(),我希望显示ping的任何进度textBox1.

        void Ping()
        {
            p = new Process();
            p.StartInfo.FileName = "ping";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.Arguments = "www.microsoft.com";
            p.Start();
            textBox1.Text = p.StandardOutput.ReadToEnd();
            p.WaitForExit();
        }
Run Code Online (Sandbox Code Playgroud)

怎么实现呢?我上面写的当前实现并未显示进度,而是显示最终输出.

c#

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

标签 统计

c# ×3

.net ×1

multithreading ×1

ping ×1

using-statement ×1