小编shf*_*301的帖子

等待单元测试中的asyncrhonous事件引发事件

我正在尝试从单元测试中单独测试事件SmtpClient.SendCompleted的测试,并且我遇到了一个烦人的问题,测试在事件实际触发之前继续处理,终止应用程序而不实际进入事件.那么,想象下面的代码:

[TestClass]
public class emailTest
{
    public bool sentEmail = false;

    [TestMethod]
    public void sendEmail()
    {
        SmtpClient smtp = new SmtpClient("smtpserver");
        smtp.SendCompleted += delegate(Object sender, System.ComponentModel.AsyncCompletedEventArgs e) { sentEmail = true; };
        MailMessage mm = new MailMessage("from@address.com", "to@address.com", "test subject", "test body");
        smtp.SendAsync(mm, "test");
        Assert.IsTrue(sentEmail);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我手动插入这样的延迟,则此测试失败...

[TestClass]
public class emailTest
{
    public bool sentEmail = false;

    [TestMethod]
    public void sendEmail()
    {
        SmtpClient smtp = new SmtpClient("smtpserver");
        smtp.SendCompleted += delegate(Object sender, System.ComponentModel.AsyncCompletedEventArgs e) { sentEmail = true; };
        MailMessage …
Run Code Online (Sandbox Code Playgroud)

c# events unit-testing asynchronous

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

WPF TextBlock向左溢出文本

作为背景我有一个很长的ID,太长,无法显示在TextBlock的给定区域.ID的有趣部分是结尾,即最右边的部分.

我想要做的是使用TextBlock,而不是文本溢出右边并切掉最右边的部分,向左溢出并切掉最左边的部分.

这给了ID 123456和一个TextBlock,它有足够的空间来容纳四个字符,以便显示TextBlock 3456而不是1234默认显示.

我可以手动修剪我的ID进行显示,但是给出了一个不太理想的可变间距字体.那么有什么办法让WPF改变溢出方向吗?

wpf

4
推荐指数
2
解决办法
3131
查看次数

vb.net拆分字符串的最后一部分

net 2.0并需要拆分字符串的最后一个/标记.目前我有一个代码,说明Dim test As String = "Software\Microsoft\Windows\Welcome"并需要一个代码,将Software\Microsoft\Windows\Welcome分成两个单独的部分,所以我将软件\ Microsoft\Windows和欢迎作为新字符串.我只能找到将其他部分从开头分开的东西

Dim whole As String = "Software/Microsoft/Windows/Run"
Dim firstpart As String = whole.Substring(0, whole.IndexOf("/"))
Dim lastpart As String = whole.Substring(whole.IndexOf("/") + 1)`
Run Code Online (Sandbox Code Playgroud)

vb.net string split

4
推荐指数
1
解决办法
2万
查看次数

如何批量减去变量

我正在批量制作一个基于文本的游戏,我需要从武器/盔甲的成本中减去玩家的黄金......有人可以看看我的代码并告诉我他们是否发现了问题吗?

@echo off 
set gold= 20

echo %gold%
pause >nul
goto blacksmith
:blacksmith
set /p weaponch=  Purchase: 

if %weaponch%==1s (
set  weaponch= 10
set a/ gold=%gold%-10
echo.
echo Gold: %gold% You have purchased the Light Sword
pause 
)
Run Code Online (Sandbox Code Playgroud)

batch-file

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

在C中使用char指针时strcpy

我对char数组有一个简单的疑问.我有一个结构:

struct abc {
char *charptr;
int a;
}

void func1()
{
    func2("hello");
}

void func (char *name)
{
    strcpy(abc.charptr, name); >>> This is wrong. 
}
Run Code Online (Sandbox Code Playgroud)

这个strcpy会导致崩溃,因为我没有为charptr分配任何内存.问题是:为了记录这个记忆,我们可以做

abc.charptr = (char *) malloc(strlen(name)); ?
strcpy(abc,charptr, name); >>> Is this (or strncpy) right ?
Run Code Online (Sandbox Code Playgroud)

这是正确的吗 ?

c string char

2
推荐指数
2
解决办法
6914
查看次数

WaitForSingleObject,超时= 0

我有一个在非信号状态下创建的互斥锁

HANDLE hmutex= CreateMutex(NULL,FALSE,"");---1
Run Code Online (Sandbox Code Playgroud)

现在我打电话

DWORD dw = WaitForSingleObject(hmutex,0); ---2
Run Code Online (Sandbox Code Playgroud)

由于hmutex没有发出信号,WaitForSingleObject会立即返回,但是hmutex的状态会改变为发信号吗?

如果另一个线程调用第二个语句会发生什么?

winapi multithreading mutex visual-c++

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

如何开设新的独立表格?

我将从代码开始:

private void button_newform_Click(object sender, EventArgs e)
    Form newF = new Form();
    newF.show();
Run Code Online (Sandbox Code Playgroud)

我有一个带有按钮的表单,可以打开一个新表单.

问题是,新表单有父表.

例如,如果我点击newform按钮,它将创建一个新表单.

但是当我关闭此表单时,新表单也将关闭.

如何从现有表单创建独立表单?

.net c# winforms

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