我有以下代码:
public static void Send(this MailMessage email)
{
if (!isInitialized)
Initialize(false);
//smtpClient.SendAsync(email, "");
email.IsBodyHtml = true;
Thread mailThread = new Thread(new ParameterizedThreadStart(
(o) =>
{
var m = o as MailMessage;
SmtpClient client= new SmtpClient("smtpserveraddress");
client.Send(m);
}));
mailThread.Start(email);
Run Code Online (Sandbox Code Playgroud)
我希望邮件发送在后台完成而不会干扰主线程.它完蛋后我不在乎.
我是否需要以某种方式处理已创建线程(mailThread)的处理?或者它在完成工作后会自动处理?
请不要推荐SendAsync方法.我想手动创建线程.Mail.Send只是一个示例场景.
谢谢.
假设这段代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace TestFunctionality
{
class Program
{
static void Main(string[] args)
{
// System.Reflection.Assembly.GetExecutingAssembly().Location
Assembly assembly = Assembly.LoadFrom("c:\\testclass.dll");
AppDomain.CurrentDomain.Load(assembly.GetName());
var alltypes = assembly.GetTypes();
foreach (var t in alltypes)
{
Console.WriteLine(t.Name);
var methods = t.GetMethods(/*BindingFlags.DeclaredOnly*/);
foreach (var method in methods)
Console.WriteLine(
"\t--> "
+(method.IsPublic? "public ":"")
+ (method.IsPrivate ? "private" : "")
+ (method.IsStatic ? "static " : "")
+ method.ReturnType + " " + method.Name);
}
Console.ReadKey();
} …Run Code Online (Sandbox Code Playgroud) 我想知道如何比较两个字符串,告诉我一个字符串是否大于另一个字符串.
我不想要平等/不平等.我希望有一个很好的旧字母数字排序.
示例:'aaaa','aaad','aaab'的排序应该是:'aaaa','aaab','aaad'
如果我有原子怎么办?如何订购原子?(再次a = b或a = = b不能完成这项工作,我需要订购.)
我想在 Prolog 中找到两个节点之间的最短路径。我想出了如何找到两个节点之间的所有路径,但不幸的是以下代码陷入了循环:
arc(a,b).
arc(b,a).
arc(b,c).
arc(c,b).
arc(c,d).
arc(d,c).
path(X,Y,[arc(X,Y)]) :-
arc(X,Y).
path(X,Y,[arc(X,Z)|P]) :-
arc(X,Z),
path(Z,Y,P).
Run Code Online (Sandbox Code Playgroud)
运行的代码是:
?- path(a,c,R).
R = [arc(a, b), arc(b, c)] ;
R = [arc(a, b), arc(b, a), arc(a, b), arc(b, c)] ;
R = [arc(a, b), arc(b, a), arc(a, b), arc(b, a), arc(a, b), arc(b, c)]
....
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:如何获取所有路径而不无限循环?
在一天结束时,我会得到列表的长度并找到最小值。
如果可能的话,请给出 ISO Prolog 的解决方案。
注意:这是更新的代码,我仍然有问题。显然,在检查事实而不是原子时,成员谓词不起作用。
xxx([]).
path(X,Y,[arc(X,Y)]) :-
arc(X,Y).
path(X,Y,[arc(X,Z)|P]) :-
arc(X,Z)
,xxx(L)
,member(arc(X,Z),L)->
!;
(member(arc(Z,X),L)->
!;
(append(L,[arc(X,Z)],R),retract(xxx(_)),assert(xxx(R)),path(Z,Y,P))).
Run Code Online (Sandbox Code Playgroud)
我的成员谓词是:
member(X,[X|T]).
member(X,[H|T]) :- member(X,T).
Run Code Online (Sandbox Code Playgroud)
谢谢。
我已经为android中的一个活动编写了以下代码:
import java.util.Date;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.support.v4.app.NavUtils;
public class Step1Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_step1);
Button calculateButton = (Button) findViewById(R.id.buttonCalculate);
calculateButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText fullname= (EditText)findViewById(R.id.editText1); // !!Breakpoint!!
DatePicker birthdate= (DatePicker)findViewById(R.id.datePickerDateofBirth);
int test=birthdate.getYear();
TextView result=(TextView)findViewById(R.id.textView2);
result.setText(new Integer( lifepath).toString()+" "+new Integer(test).toString());
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) { …Run Code Online (Sandbox Code Playgroud) c# ×2
prolog ×2
android ×1
graph-theory ×1
settext ×1
smtpclient ×1
sql-order-by ×1
string ×1
textview ×1