我正在尝试从单元测试中单独测试事件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) 作为背景我有一个很长的ID,太长,无法显示在TextBlock的给定区域.ID的有趣部分是结尾,即最右边的部分.
我想要做的是使用TextBlock,而不是文本溢出右边并切掉最右边的部分,向左溢出并切掉最左边的部分.
这给了ID 123456
和一个TextBlock,它有足够的空间来容纳四个字符,以便显示TextBlock 3456
而不是1234
默认显示.
我可以手动修剪我的ID进行显示,但是给出了一个不太理想的可变间距字体.那么有什么办法让WPF改变溢出方向吗?
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) 我正在批量制作一个基于文本的游戏,我需要从武器/盔甲的成本中减去玩家的黄金......有人可以看看我的代码并告诉我他们是否发现了问题吗?
@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) 我对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)
这是正确的吗 ?
我有一个在非信号状态下创建的互斥锁
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的状态会改变为发信号吗?
如果另一个线程调用第二个语句会发生什么?
我将从代码开始:
private void button_newform_Click(object sender, EventArgs e)
Form newF = new Form();
newF.show();
Run Code Online (Sandbox Code Playgroud)
我有一个带有按钮的表单,可以打开一个新表单.
问题是,新表单有父表.
例如,如果我点击newform
按钮,它将创建一个新表单.
但是当我关闭此表单时,新表单也将关闭.
如何从现有表单创建独立表单?
c# ×2
string ×2
.net ×1
asynchronous ×1
batch-file ×1
c ×1
char ×1
events ×1
mutex ×1
split ×1
unit-testing ×1
vb.net ×1
visual-c++ ×1
winapi ×1
winforms ×1
wpf ×1