У меня есть простое приложение, когда я должен остановить поток backround с помощью Остановки () функция, прежде чем приложение будет закрыто. Проблема состоит в том, что мое Основное () функция имеет несколько точек выхода (операторы возврата)
static void Main(string[] args)
{
/// some code
return;
// some code
return;
//// etc
}
Я пытался использовать AppDomain. CurrentDomain. ProcessExit как единственное место для уборки, но это никогда не называют (по крайней мере, в то время как существует фоновый поток). Существует ли способ разработать некоторый хороший способ реализовать это?
Несмотря на то, что он трудно проверить, включается ли SSL способ по решению проблемы, в том, чтобы заставить SSL.
Из базы знаний Backscecloud поддерживают базу знаний :
Вы можете переписать URL-адреса в Web.config:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_CLUSTER_HTTPS}" pattern="^on$" negate="true" />
<add input="{HTTP_CLUSTER-HTTPS}" pattern=".+" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{SCRIPT_NAME}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Вы можете заставить SSL в ASP.NET :
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<script runat="server">
protected void Page_Load(object sender, System.EventArgs e)
{
if(Request.ServerVariables["HTTP_CLUSTER_HTTPS"] != "on")
{
if(Request.ServerVariables.Get("HTTP_CLUSTER-HTTPS") == null)
{
string xredir__, xqstr__;
xredir__ = "https://" + Request.ServerVariables["SERVER_NAME"];
xredir__ += Request.ServerVariables["SCRIPT_NAME"];
xqstr__ = Request.ServerVariables["QUERY_STRING"];
if (xqstr__ != "")
xredir__ = xredir__ + "?" + xqstr__;
Response.Redirect(xredir__);
}
}
Response.Write("SSL Only");
}
</script>
<html>
<head id="Head1" runat="server">
<title>SSL Only</title>
</head>
<body>
</body>
</html>
-121--4293970- Вы можете обернуть все вас код в отдельном методе и называть его от Main ():
static void Main(string[] args)
{
DoSomething();
TerminateThread(); // Thread.Stop() code goes here
}
static void DoSomething()
{
/// some code
return;
// some code
return;
//// etc
}
Измените вызовы return;
и вызовите подпрограмму очистки, которая также прервала процесс.
ДА! Вы можете закрыть приложение, чтобы оно больше не работало в фоновом режиме. Как и другие, finish ()
- это рекомендуемый Google способ, который не означает, что ваша программа закрыта.
System.exit(0);
При этом приложение будет закрыто, не оставляя ничего запущенного в фоновом режиме. Однако используйте это разумно и не оставляйте файлы открытыми, дескрипторы базы данных открытыми и т.д. Эти элементы обычно очищаются с помощью команды finish ()
.
Я лично НЕНАВИЖУ, когда я выбираю Выход в приложении, и он на самом деле не выходит.
-121--665847-Можно использовать Application.StartExit Event
В соответствии с MSDN событие:
Происходит при завершении работы приложения.
ID рекомендуется загружать его и хранить jquery.js локально на том же сервере. Таким образом, если связанный с файлом снижается (не так).
Большой аргумент заключается в том, что если jQuery выпустит обновление, которое удаляет функцию, которую вам нужно, вам не будет важно, и у вас будет время, чтобы исправить его
-121--3677777- Измените возврат ;
вызовы и вызывают процедуру очистки, которая также прекратила процесс.