Gestione status dei thread
This commit is contained in:
parent
d133917283
commit
9794ce1abb
35 changed files with 16112 additions and 30 deletions
32
imagecatalog/AssemblyInfo.cs
Normal file
32
imagecatalog/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
using System;
|
||||
using System.Reflection;
|
||||
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.
|
||||
|
||||
// Review the values of the assembly attributes
|
||||
|
||||
[assembly: AssemblyTitle("Image Catalog")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyCompany("FornaSoft")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("(C) 2002-08")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: CLSCompliant(true)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("948AA2AA-5BED-4DD5-9C67-3126EE9109C6")]
|
||||
|
||||
// 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.74.*")]
|
||||
1255
imagecatalog/CreaImmagineSeparateMultiCore.cs
Normal file
1255
imagecatalog/CreaImmagineSeparateMultiCore.cs
Normal file
File diff suppressed because it is too large
Load diff
1721
imagecatalog/CreaImmagineSeparateThread.cs
Normal file
1721
imagecatalog/CreaImmagineSeparateThread.cs
Normal file
File diff suppressed because it is too large
Load diff
1190
imagecatalog/ExifReader.cs
Normal file
1190
imagecatalog/ExifReader.cs
Normal file
File diff suppressed because it is too large
Load diff
261
imagecatalog/FileHelper.cs
Normal file
261
imagecatalog/FileHelper.cs
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace ImageCatalog
|
||||
{
|
||||
public class FileHelper
|
||||
{
|
||||
// Private dirSourceDest As Dictionary(Of FileInfo, DirectoryInfo)
|
||||
private int filesPerFolder;
|
||||
private string suffix;
|
||||
private int counterSize;
|
||||
private int numerationType;
|
||||
private string filter;
|
||||
private bool separateFiles;
|
||||
private string extensions = "*.jpg,*.png,*.gif";
|
||||
|
||||
public enum numerazione
|
||||
{
|
||||
Progressiva,
|
||||
Files
|
||||
}
|
||||
/// <summary>
|
||||
/// Preparazione per la separazione
|
||||
/// </summary>
|
||||
/// <param name="filesPerFolder"></param>
|
||||
/// <param name="suffix"></param>
|
||||
/// <param name="counterSize"></param>
|
||||
/// <param name="numerationType"></param>
|
||||
/// <remarks></remarks>
|
||||
public FileHelper(int filesPerFolder, string suffix, int counterSize, int numerationType)
|
||||
{
|
||||
this.filesPerFolder = filesPerFolder;
|
||||
this.suffix = suffix;
|
||||
this.counterSize = counterSize;
|
||||
this.numerationType = numerationType;
|
||||
separateFiles = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// nessuna separazione
|
||||
/// </summary>
|
||||
/// <remarks></remarks>
|
||||
public FileHelper()
|
||||
{
|
||||
separateFiles = false;
|
||||
}
|
||||
|
||||
public Dictionary<FileInfo, DirectoryInfo> GetFilesRecursive(DirectoryInfo root, DirectoryInfo destRoot, string filter)
|
||||
{
|
||||
var dirSourceDest = new Dictionary<FileInfo, DirectoryInfo>();
|
||||
var result = new List<FileInfo>();
|
||||
|
||||
// Dim stack As New Stack(Of DirectoryInfo)
|
||||
var stack = new Stack<KeyValuePair<DirectoryInfo, DirectoryInfo>>();
|
||||
this.filter = filter;
|
||||
var pair = new KeyValuePair<DirectoryInfo, DirectoryInfo>();
|
||||
|
||||
|
||||
// stack.Push(root)
|
||||
stack.Push(new KeyValuePair<DirectoryInfo, DirectoryInfo>(root, destRoot));
|
||||
while (stack.Count > 0)
|
||||
{
|
||||
var curDirKV = stack.Pop();
|
||||
// curDirKP = stack.Pop()
|
||||
var dir = curDirKV.Key;
|
||||
var dDir = curDirKV.Value;
|
||||
try
|
||||
{
|
||||
// result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
|
||||
// dividere file qui
|
||||
if (filesPerFolder > 0 & separateFiles)
|
||||
{
|
||||
appendDictionary(dirSourceDest, dividiFilesInDir(dir, dDir));
|
||||
}
|
||||
else
|
||||
{
|
||||
appendDictionary(dirSourceDest, getAllFilesInDir(dir, dDir));
|
||||
}
|
||||
|
||||
foreach (DirectoryInfo subDirectory in dir.GetDirectories())
|
||||
stack.Push(new KeyValuePair<DirectoryInfo, DirectoryInfo>(subDirectory, new DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var e = ex.Demystify();
|
||||
Console.WriteLine(e);
|
||||
Console.WriteLine(e.Message);
|
||||
Console.WriteLine(e.StackTrace);
|
||||
}
|
||||
}
|
||||
|
||||
return dirSourceDest;
|
||||
}
|
||||
|
||||
// Public Class FileData
|
||||
// Public File As FileInfo
|
||||
// Public Directory As DirectoryInfo
|
||||
// Public Sub New(newFile As FileInfo, newDirectory As DirectoryInfo)
|
||||
// File = newFile
|
||||
// Directory = newDirectory
|
||||
// End Sub
|
||||
// End Class
|
||||
|
||||
// Public Function GetFilesRecursiveParallel(ByVal root As DirectoryInfo, ByVal destRoot As DirectoryInfo, ByVal filter As String) As List(Of FileData)
|
||||
|
||||
|
||||
// Dim dirSourceDest As New ConcurrentDictionary(Of FileInfo, DirectoryInfo)
|
||||
// Dim result As New List(Of FileInfo)
|
||||
|
||||
// 'Dim stack As New Stack(Of DirectoryInfo)
|
||||
// Dim stack As New Stack(Of KeyValuePair(Of DirectoryInfo, DirectoryInfo))
|
||||
|
||||
|
||||
// Me.filter = filter
|
||||
// Dim pair As New KeyValuePair(Of DirectoryInfo, DirectoryInfo)
|
||||
|
||||
|
||||
// 'stack.Push(root)
|
||||
// stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(root, destRoot))
|
||||
|
||||
// Do While (stack.Count > 0)
|
||||
// Dim curDirKV As KeyValuePair(Of DirectoryInfo, DirectoryInfo) = stack.Pop
|
||||
// 'curDirKP = stack.Pop()
|
||||
// Dim dir As DirectoryInfo = curDirKV.Key
|
||||
// Dim dDir As DirectoryInfo = curDirKV.Value
|
||||
// Try
|
||||
// 'result.AddRange(dir.GetFiles(filter, SearchOption.TopDirectoryOnly))
|
||||
// ' dividere file qui
|
||||
// If filesPerFolder > 0 And separateFiles Then
|
||||
// AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir))
|
||||
// Else
|
||||
// AppendDictionaryConcurrent(dirSourceDest, DividiFilesInDirConcurrent(dir, dDir))
|
||||
// End If
|
||||
|
||||
// For Each subDirectory As DirectoryInfo In dir.GetDirectories
|
||||
// stack.Push(New KeyValuePair(Of DirectoryInfo, DirectoryInfo)(subDirectory, New DirectoryInfo(Path.Combine(dDir.FullName, subDirectory.Name))))
|
||||
|
||||
// Next
|
||||
// Catch ex As Exception
|
||||
// ' TODO: FARE QUALCOSA
|
||||
// End Try
|
||||
// Loop
|
||||
|
||||
// Dim resultData As New List(Of FileData)
|
||||
// resultData.AddRange(From p In dirSourceDest Select New FileData(p.Key, p.Value))
|
||||
// Return resultData
|
||||
// 'Return dirSourceDest
|
||||
// End Function
|
||||
|
||||
public Dictionary<FileInfo, DirectoryInfo> appendDictionary(Dictionary<FileInfo, DirectoryInfo> dictA, Dictionary<FileInfo, DirectoryInfo> dictB)
|
||||
{
|
||||
foreach (KeyValuePair<FileInfo, DirectoryInfo> pair in dictB)
|
||||
dictA.Add(pair.Key, pair.Value);
|
||||
return dictA;
|
||||
}
|
||||
|
||||
// Public Function AppendDictionaryConcurrent(ByVal dictA As ConcurrentDictionary(Of FileInfo, DirectoryInfo), ByVal dictB As ConcurrentDictionary(Of FileInfo, DirectoryInfo)) As ConcurrentDictionary(Of FileInfo, DirectoryInfo)
|
||||
// For Each pair As KeyValuePair(Of FileInfo, DirectoryInfo) In dictB
|
||||
// dictA.TryAdd(pair.Key, pair.Value)
|
||||
// 'dictA.Add(pair.Key, pair.Value)
|
||||
// Next
|
||||
// Return dictA
|
||||
// End Function
|
||||
|
||||
public Dictionary<FileInfo, DirectoryInfo> getAllFilesInDir(DirectoryInfo dir, DirectoryInfo dirDest)
|
||||
{
|
||||
var dict = new Dictionary<FileInfo, DirectoryInfo>();
|
||||
foreach (FileInfo File in dir.GetFiles(filter))
|
||||
dict.Add(File, new DirectoryInfo(Path.Combine(dirDest.FullName, File.Name)));
|
||||
return dict;
|
||||
}
|
||||
|
||||
private Dictionary<FileInfo, DirectoryInfo> dividiFilesInDir(DirectoryInfo dir, DirectoryInfo dirDest)
|
||||
{
|
||||
int filesCount = dir.GetFiles(filter).Count();
|
||||
int contaFilePerDir = 0;
|
||||
int contaDirPerDir = 0;
|
||||
string tempText = string.Empty;
|
||||
var foldersDict = new Dictionary<FileInfo, DirectoryInfo>();
|
||||
DirectoryInfo destDir;
|
||||
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName));
|
||||
foreach (FileInfo file in dir.GetFiles(filter))
|
||||
{
|
||||
contaFilePerDir += 1;
|
||||
if (contaFilePerDir == contaDirPerDir * filesPerFolder + 1)
|
||||
{
|
||||
contaDirPerDir += 1;
|
||||
if (numerationType == (int)numerazione.Progressiva)
|
||||
{
|
||||
tempText = contaDirPerDir.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
tempText = (contaDirPerDir * filesPerFolder).ToString();
|
||||
}
|
||||
|
||||
int i;
|
||||
var loopTo = counterSize - tempText.Length;
|
||||
for (i = 1; i <= loopTo; i++)
|
||||
tempText = "0" + tempText;
|
||||
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText));
|
||||
}
|
||||
|
||||
if (!destDir.Exists)
|
||||
{
|
||||
destDir.Create();
|
||||
}
|
||||
|
||||
foldersDict.Add(file, destDir);
|
||||
}
|
||||
|
||||
return foldersDict;
|
||||
}
|
||||
|
||||
private ConcurrentDictionary<FileInfo, DirectoryInfo> DividiFilesInDirConcurrent(DirectoryInfo dir, DirectoryInfo dirDest)
|
||||
{
|
||||
int filesCount = dir.GetFiles(filter).Count();
|
||||
int contaFilePerDir = 0;
|
||||
int contaDirPerDir = 0;
|
||||
string tempText = string.Empty;
|
||||
var foldersDict = new ConcurrentDictionary<FileInfo, DirectoryInfo>();
|
||||
DirectoryInfo destDir;
|
||||
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName));
|
||||
foreach (FileInfo file in dir.GetFiles(filter))
|
||||
{
|
||||
contaFilePerDir += 1;
|
||||
if (contaFilePerDir == contaDirPerDir * filesPerFolder + 1)
|
||||
{
|
||||
contaDirPerDir += 1;
|
||||
if (numerationType == (int)numerazione.Progressiva)
|
||||
{
|
||||
tempText = contaDirPerDir.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
tempText = (contaDirPerDir * filesPerFolder).ToString();
|
||||
}
|
||||
|
||||
int i;
|
||||
var loopTo = counterSize - tempText.Length;
|
||||
for (i = 1; i <= loopTo; i++)
|
||||
tempText = "0" + tempText;
|
||||
destDir = new DirectoryInfo(Path.Combine(dirDest.FullName, suffix + tempText));
|
||||
}
|
||||
|
||||
if (!destDir.Exists)
|
||||
{
|
||||
destDir.Create();
|
||||
}
|
||||
|
||||
foldersDict.TryAdd(file, destDir);
|
||||
}
|
||||
|
||||
return foldersDict;
|
||||
}
|
||||
}
|
||||
}
|
||||
3281
imagecatalog/Form1.cs
Normal file
3281
imagecatalog/Form1.cs
Normal file
File diff suppressed because it is too large
Load diff
355
imagecatalog/ImageCatalog 2.csproj
Normal file
355
imagecatalog/ImageCatalog 2.csproj
Normal file
|
|
@ -0,0 +1,355 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>9.0.30729</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{3F1E23DB-435E-0590-1EF5-735E898DBA3C}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>ImageCatalog</AssemblyName>
|
||||
<AssemblyOriginatorKeyFile>
|
||||
</AssemblyOriginatorKeyFile>
|
||||
<AssemblyOriginatorKeyMode>None</AssemblyOriginatorKeyMode>
|
||||
<DefaultClientScript>JScript</DefaultClientScript>
|
||||
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
|
||||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
<OptionStrict>On</OptionStrict>
|
||||
<RootNamespace>ImageCatalog</RootNamespace>
|
||||
<StartupObject>ImageCatalog.My.MyApplication</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<IsWebBootstrapper>true</IsWebBootstrapper>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
<TargetFrameworkProfile>
|
||||
</TargetFrameworkProfile>
|
||||
<SccProjectName>SAK</SccProjectName>
|
||||
<SccLocalPath>SAK</SccLocalPath>
|
||||
<SccAuxPath>SAK</SccAuxPath>
|
||||
<SccProvider>SAK</SccProvider>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<PublishUrl>http://localhost/ImageCatalog/</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Web</InstallFrom>
|
||||
<UpdateEnabled>true</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.8.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<DefaultItemExcludes>$(DefaultItemExcludes);$(ProjectDir)**\*.vb</DefaultItemExcludes>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DocumentationFile>bin\ImageCatalog.xml</DocumentationFile>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>
|
||||
</DefineConstants>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<Optimize>false</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>1</WarningLevel>
|
||||
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DocumentationFile>bin\ImageCatalog.xml</DocumentationFile>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>
|
||||
</DefineConstants>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<Optimize>true</Optimize>
|
||||
<RegisterForComInterop>false</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>false</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningLevel>1</WarningLevel>
|
||||
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
|
||||
<DebugType>none</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<DocumentationFile>bin\x64\Debug\ImageCatalog.xml</DocumentationFile>
|
||||
<WarningLevel>1</WarningLevel>
|
||||
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<DocumentationFile>bin\x64\Release\ImageCatalog.xml</DocumentationFile>
|
||||
<Optimize>true</Optimize>
|
||||
<WarningLevel>1</WarningLevel>
|
||||
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<DocumentationFile>bin\x86\Debug\ImageCatalog.xml</DocumentationFile>
|
||||
<WarningLevel>1</WarningLevel>
|
||||
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<CodeAnalysisFailOnMissingRules>false</CodeAnalysisFailOnMissingRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<DocumentationFile>bin\x86\Release\ImageCatalog.xml</DocumentationFile>
|
||||
<Optimize>true</Optimize>
|
||||
<WarningLevel>1</WarningLevel>
|
||||
<NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<CodeAnalysisLogFile>bin\ImageCatalog.exe.CodeAnalysisLog.xml</CodeAnalysisLogFile>
|
||||
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
|
||||
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRuleSetDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets</CodeAnalysisRuleSetDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRuleSets>true</CodeAnalysisIgnoreBuiltInRuleSets>
|
||||
<CodeAnalysisRuleDirectories>;F:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules</CodeAnalysisRuleDirectories>
|
||||
<CodeAnalysisIgnoreBuiltInRules>true</CodeAnalysisIgnoreBuiltInRules>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.VisualBasic" />
|
||||
<Reference Include="Ben.Demystifier, Version=0.3.0.0, Culture=neutral, PublicKeyToken=a6d206e05440431a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Ben.Demystifier.0.3.0\lib\net45\Ben.Demystifier.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0" />
|
||||
<Reference Include="Microsoft.WindowsAPICodePack, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Core.1.1.0.2\lib\Microsoft.WindowsAPICodePack.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.Shell.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.WindowsAPICodePack.ShellExtensions, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.WindowsAPICodePack-Shell.1.1.0.0\lib\Microsoft.WindowsAPICodePack.ShellExtensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core">
|
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Data">
|
||||
<Name>System.Data</Name>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Drawing">
|
||||
<Name>System.Drawing</Name>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Forms">
|
||||
<Name>System.Windows.Forms</Name>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml">
|
||||
<Name>System.XML</Name>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Drawing" />
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Windows.Forms" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="My Project\MyNamespace.Dynamic.Designer.cs" />
|
||||
<Compile Include="My Project\MyNamespace.Static.1.Designer.cs" />
|
||||
<Compile Include="AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FileHelper.cs" />
|
||||
<Compile Include="CreaImmagineSeparateMultiCore.cs" />
|
||||
<Compile Include="CreaImmagineSeparateThread.cs" />
|
||||
<Compile Include="ExifReader.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LoadBuffer.cs" />
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Module2.cs" />
|
||||
<Compile Include="My Project\Application.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="PicSettings.cs" />
|
||||
<Compile Include="XYThreadPool.cs" />
|
||||
<Compile Include="Module1.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ParametriSetup.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="app.config" />
|
||||
<None Include="ClassDiagram1.cd" />
|
||||
<None Include="My Project\app.manifest" />
|
||||
<None Include="My Project\Settings.settings">
|
||||
<CustomToolNamespace>ImageCatalog.My</CustomToolNamespace>
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Windows Installer 3.1</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Sorgenti\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CatalogVbLib\CatalogVbLib.vbproj">
|
||||
<Project>{44465926-240d-473f-90b8-786ba4384406}</Project>
|
||||
<Name>CatalogVbLib</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\MaddoShared\MaddoShared.csproj">
|
||||
<Project>{aebfe9e3-277c-4a7b-8448-145d1b11998b}</Project>
|
||||
<Name>MaddoShared</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>
|
||||
</PreBuildEvent>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
13
imagecatalog/LoadBuffer.cs
Normal file
13
imagecatalog/LoadBuffer.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
|
||||
namespace ImageCatalog
|
||||
{
|
||||
public class LoadBuffer
|
||||
{
|
||||
public List<Image> imageList = new List<Image>();
|
||||
public List<FileInfo> picSourceList = new List<FileInfo>();
|
||||
public List<List<FileInfo>> dirSourceList = new List<List<FileInfo>>();
|
||||
}
|
||||
}
|
||||
2169
imagecatalog/MainForm.Designer.cs
generated
Normal file
2169
imagecatalog/MainForm.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load diff
1675
imagecatalog/MainForm.cs
Normal file
1675
imagecatalog/MainForm.cs
Normal file
File diff suppressed because it is too large
Load diff
158
imagecatalog/Module1.cs
Normal file
158
imagecatalog/Module1.cs
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
|
||||
namespace ImageCatalog
|
||||
{
|
||||
static class Module1
|
||||
{
|
||||
|
||||
// Sub CaricaIni()
|
||||
// Dim Parola As String
|
||||
// Dim i As Integer
|
||||
// Dim p As Integer
|
||||
|
||||
// If Dir$(NomeIni) <> "" Then
|
||||
// Open NomeIni For Input As #1
|
||||
// Input #1, NumeroMacchine
|
||||
// For i = 1 To NumeroMacchine
|
||||
// Input #1, NomeMacchina(i)
|
||||
// Input #1, CodiceMacchina(i)
|
||||
// Input #1, TempoMacchinaFerma(i)
|
||||
// Input #1, LunghezzaImpulso(i)
|
||||
// Input #1, TempoRegistrazioneDati(i)
|
||||
// Input #1, RangoVelocita(i)
|
||||
// Input #1, MaxVelocita(i)
|
||||
// Input #1, NumeroRulli(i)
|
||||
// Input #1, NumeroFili(i)
|
||||
// Input #1, IndirizzoMacchina(i)
|
||||
// Input #1, StampaAutoMacchina(i)
|
||||
// Next i
|
||||
// Input #1, SettimanaInizio
|
||||
// Input #1, SettimanaFine
|
||||
// Input #1, Chiusura
|
||||
// Input #1, OrarioStampa
|
||||
// Input #1, OrarioStampaSecondi
|
||||
// Input #1, OrarioAccendiProg
|
||||
// Input #1, OrarioSpengiProg
|
||||
// Input #1, NomeDitta
|
||||
// Input #1, StampaAutoGiorno
|
||||
// Input #1, StampaAutoWeek
|
||||
// Input #1, StampaGiornoRiepilogo
|
||||
// Input #1, StampaGiornoGrafTMFA
|
||||
// Input #1, StampaGiornoGrafVel
|
||||
// Input #1, StampaWeekRiepilogo
|
||||
// Input #1, StampaWeekGrafTMFA
|
||||
// Input #1, StampaWeekGrafVel
|
||||
// Input #1, StampanteManuale
|
||||
// Input #1, StampanteAutomatica
|
||||
// Input #1, StampanteNomeAghi
|
||||
// Input #1, StampanteNomeLaser
|
||||
// Input #1, NomePortaComm
|
||||
|
||||
// Input #1, TurniTotali
|
||||
// For p = 1 To TurniTotali
|
||||
// Input #1, TurnoNumero(p)
|
||||
// Input #1, TurnoInizioMinuti(p)
|
||||
// Input #1, TurnoFineMinuti(p)
|
||||
// Input #1, TurnoInizioSecondi(p)
|
||||
// Input #1, TurnoFineSecondi(p)
|
||||
// Next p
|
||||
// Input #1, Parola
|
||||
// Close #1
|
||||
// PassWordAmm = Trim$(Cripta(Parola, ChiaveCriDecri))
|
||||
// End If
|
||||
// End Sub
|
||||
|
||||
// Sub SalvaIni()
|
||||
// Dim Conto As Single
|
||||
// Dim Nomefile As String
|
||||
// Dim NomeDir As String
|
||||
// Dim Testo As String
|
||||
// Dim TestoA As String
|
||||
// Dim i As Integer
|
||||
// Dim k As Integer
|
||||
// Dim p As Integer
|
||||
// Dim Lungo As Integer
|
||||
// Dim Resto As Integer
|
||||
// Dim Primo(3) As String
|
||||
|
||||
// For i = 1 To NumeroMacchine
|
||||
// If Right$(DirectoryProgramma, 1) = "\" Then
|
||||
// NomeDir = DirectoryProgramma + NomeMacchina(i)
|
||||
// Else
|
||||
// NomeDir = DirectoryProgramma + "\" + NomeMacchina(i)
|
||||
// End If
|
||||
// Nomefile = NomeDir + "\" + NomeMacchina(i) + ".SYS"
|
||||
// If Dir$(Nomefile) = "" Then MkDir(NomeDir)
|
||||
// Next i
|
||||
|
||||
// Open NomeIni For Output As #3
|
||||
// Print #3, NumeroMacchine
|
||||
// For i = 1 To NumeroMacchine
|
||||
// If Right$(DirectoryProgramma, 1) = "\" Then
|
||||
// Nomefile = DirectoryProgramma + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
|
||||
// Else
|
||||
// Nomefile = DirectoryProgramma + "\" + NomeMacchina(i) + "\" + NomeMacchina(i) + ".SYS"
|
||||
// End If
|
||||
// Open Nomefile For Output As #4
|
||||
// Write #4, NomeMacchina(i)
|
||||
// Write #4, CodiceMacchina(i)
|
||||
// Print #4, TempoMacchinaFerma(i)
|
||||
// Print #4, LunghezzaImpulso(i)
|
||||
// Print #4, TempoRegistrazioneDati(i)
|
||||
// Print #4, RangoVelocita(i)
|
||||
// Print #4, MaxVelocita(i)
|
||||
// Print #4, NumeroRulli(i)
|
||||
// Print #4, NumeroFili(i)
|
||||
// Print #4, IndirizzoMacchina(i)
|
||||
// Write #4, StampaAutoMacchina(i)
|
||||
// Close #4
|
||||
// Write #3, NomeMacchina(i)
|
||||
// Write #3, CodiceMacchina(i)
|
||||
// Print #3, TempoMacchinaFerma(i)
|
||||
// Print #3, LunghezzaImpulso(i)
|
||||
// Print #3, TempoRegistrazioneDati(i)
|
||||
// Print #3, RangoVelocita(i)
|
||||
// Print #3, MaxVelocita(i)
|
||||
// Print #3, NumeroRulli(i)
|
||||
// Print #3, NumeroFili(i)
|
||||
// Print #3, IndirizzoMacchina(i)
|
||||
// Write #3, StampaAutoMacchina(i)
|
||||
// Next i
|
||||
// Print #3, SettimanaInizio
|
||||
// Print #3, SettimanaFine
|
||||
// Write #3, Chiusura
|
||||
// Write #3, OrarioStampa
|
||||
// Print #3, OrarioStampaSecondi
|
||||
// Write #3, OrarioAccendiProg
|
||||
// Write #3, OrarioSpengiProg
|
||||
// Write #3, NomeDitta
|
||||
// Write #3, StampaAutoGiorno
|
||||
// Write #3, StampaAutoWeek
|
||||
// Write #3, StampaGiornoRiepilogo
|
||||
// Write #3, StampaGiornoGrafTMFA
|
||||
// Write #3, StampaGiornoGrafVel
|
||||
// Write #3, StampaWeekRiepilogo
|
||||
// Write #3, StampaWeekGrafTMFA
|
||||
// Write #3, StampaWeekGrafVel
|
||||
// Write #3, StampanteManuale
|
||||
// Write #3, StampanteAutomatica
|
||||
// Write #3, StampanteNomeAghi
|
||||
// Write #3, StampanteNomeLaser
|
||||
// Write #3, NomePortaComm
|
||||
|
||||
// Print #3, TurniTotali
|
||||
// For p = 1 To TurniTotali
|
||||
// Print #3, TurnoNumero(p)
|
||||
// Print #3, TurnoInizioMinuti(p)
|
||||
// Print #3, TurnoFineMinuti(p)
|
||||
// Print #3, TurnoInizioSecondi(p)
|
||||
// Print #3, TurnoFineSecondi(p)
|
||||
// Next p
|
||||
// Testo = Cripta(PassWordAmm, ChiaveCriDecri)
|
||||
// Write #3, Testo
|
||||
// Close #3
|
||||
// End Sub
|
||||
|
||||
|
||||
public static ParametriSetup SetupIni = new ParametriSetup();
|
||||
}
|
||||
}
|
||||
7
imagecatalog/Module2.cs
Normal file
7
imagecatalog/Module2.cs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
namespace ImageCatalog
|
||||
{
|
||||
static class Module2
|
||||
{
|
||||
}
|
||||
}
|
||||
38
imagecatalog/My Project/Application.Designer.cs
generated
Normal file
38
imagecatalog/My Project/Application.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
// ------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
// ------------------------------------------------------------------------------
|
||||
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace ImageCatalog.My
|
||||
{
|
||||
|
||||
// NOTE: This file is auto-generated; do not modify it directly. To make changes,
|
||||
// or if you encounter build errors in this file, go to the Project Designer
|
||||
// (go to Project Properties or double-click the My Project node in
|
||||
// Solution Explorer), and make changes on the Application tab.
|
||||
//
|
||||
internal partial class MyApplication
|
||||
{
|
||||
[DebuggerStepThrough()]
|
||||
public MyApplication() : base(Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||
{
|
||||
IsSingleInstance = false;
|
||||
EnableVisualStyles = true;
|
||||
SaveMySettingsOnExit = true;
|
||||
ShutdownStyle = Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses;
|
||||
}
|
||||
|
||||
[DebuggerStepThrough()]
|
||||
protected override void OnCreateMainForm()
|
||||
{
|
||||
MainForm = MyProject.Forms.MainForm;
|
||||
}
|
||||
}
|
||||
}
|
||||
58
imagecatalog/My Project/MyNamespace.Dynamic.Designer.cs
generated
Normal file
58
imagecatalog/My Project/MyNamespace.Dynamic.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace ImageCatalog.My
|
||||
{
|
||||
internal static partial class MyProject
|
||||
{
|
||||
internal partial class MyForms
|
||||
{
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public Form1 m_Form1;
|
||||
|
||||
public Form1 Form1
|
||||
{
|
||||
[DebuggerHidden]
|
||||
get
|
||||
{
|
||||
m_Form1 = Create__Instance__(m_Form1);
|
||||
return m_Form1;
|
||||
}
|
||||
|
||||
[DebuggerHidden]
|
||||
set
|
||||
{
|
||||
if (ReferenceEquals(value, m_Form1))
|
||||
return;
|
||||
if (value is object)
|
||||
throw new ArgumentException("Property can only be set to Nothing");
|
||||
Dispose__Instance__(ref m_Form1);
|
||||
}
|
||||
}
|
||||
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public MainForm m_MainForm;
|
||||
|
||||
public MainForm MainForm
|
||||
{
|
||||
[DebuggerHidden]
|
||||
get
|
||||
{
|
||||
m_MainForm = Create__Instance__(m_MainForm);
|
||||
return m_MainForm;
|
||||
}
|
||||
|
||||
[DebuggerHidden]
|
||||
set
|
||||
{
|
||||
if (ReferenceEquals(value, m_MainForm))
|
||||
return;
|
||||
if (value is object)
|
||||
throw new ArgumentException("Property can only be set to Nothing");
|
||||
Dispose__Instance__(ref m_MainForm);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
305
imagecatalog/My Project/MyNamespace.Static.1.Designer.cs
generated
Normal file
305
imagecatalog/My Project/MyNamespace.Static.1.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,305 @@
|
|||
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using Microsoft.VisualBasic;
|
||||
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia *//* TODO ERROR: Skipped DefineDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
namespace ImageCatalog.My
|
||||
{
|
||||
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[System.CodeDom.Compiler.GeneratedCode("MyTemplate", "11.0.0.0")]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
internal partial class MyApplication : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
|
||||
{
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[STAThread()]
|
||||
[DebuggerHidden()]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static void Main(string[] Args)
|
||||
{
|
||||
try
|
||||
{
|
||||
Application.SetCompatibleTextRenderingDefault(UseCompatibleTextRendering);
|
||||
}
|
||||
finally
|
||||
{
|
||||
}
|
||||
|
||||
MyProject.Application.Run(Args);
|
||||
}
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
}
|
||||
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[System.CodeDom.Compiler.GeneratedCode("MyTemplate", "11.0.0.0")]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
internal partial class MyComputer : Microsoft.VisualBasic.Devices.Computer
|
||||
{
|
||||
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
[DebuggerHidden()]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public MyComputer() : base()
|
||||
{
|
||||
}
|
||||
}
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
[HideModuleName()]
|
||||
[System.CodeDom.Compiler.GeneratedCode("MyTemplate", "11.0.0.0")]
|
||||
internal static partial class MyProject
|
||||
{
|
||||
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[System.ComponentModel.Design.HelpKeyword("My.Computer")]
|
||||
internal static MyComputer Computer
|
||||
{
|
||||
[DebuggerHidden()]
|
||||
get
|
||||
{
|
||||
return m_ComputerObjectProvider.GetInstance;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly static ThreadSafeObjectProvider<MyComputer> m_ComputerObjectProvider = new ThreadSafeObjectProvider<MyComputer>();
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[System.ComponentModel.Design.HelpKeyword("My.Application")]
|
||||
internal static MyApplication Application
|
||||
{
|
||||
[DebuggerHidden()]
|
||||
get
|
||||
{
|
||||
return m_AppObjectProvider.GetInstance;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly static ThreadSafeObjectProvider<MyApplication> m_AppObjectProvider = new ThreadSafeObjectProvider<MyApplication>();
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[System.ComponentModel.Design.HelpKeyword("My.User")]
|
||||
internal static Microsoft.VisualBasic.ApplicationServices.User User
|
||||
{
|
||||
[DebuggerHidden()]
|
||||
get
|
||||
{
|
||||
return m_UserObjectProvider.GetInstance;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly static ThreadSafeObjectProvider<Microsoft.VisualBasic.ApplicationServices.User> m_UserObjectProvider = new ThreadSafeObjectProvider<Microsoft.VisualBasic.ApplicationServices.User>();
|
||||
/* TODO ERROR: Skipped ElifDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped DefineDirectiveTrivia */
|
||||
[System.ComponentModel.Design.HelpKeyword("My.Forms")]
|
||||
internal static MyForms Forms
|
||||
{
|
||||
[DebuggerHidden()]
|
||||
get
|
||||
{
|
||||
return m_MyFormsObjectProvider.GetInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[MyGroupCollection("System.Windows.Forms.Form", "Create__Instance__", "Dispose__Instance__", "My.MyProject.Forms")]
|
||||
internal sealed partial class MyForms
|
||||
{
|
||||
[DebuggerHidden()]
|
||||
private static T Create__Instance__<T>(T Instance) where T : Form, new()
|
||||
{
|
||||
if (Instance is null || Instance.IsDisposed)
|
||||
{
|
||||
if (m_FormBeingCreated is object)
|
||||
{
|
||||
if (m_FormBeingCreated.ContainsKey(typeof(T)) == true)
|
||||
{
|
||||
throw new InvalidOperationException(Microsoft.VisualBasic.CompilerServices.Utils.GetResourceString("WinForms_RecursiveFormCreate"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_FormBeingCreated = new Hashtable();
|
||||
}
|
||||
|
||||
m_FormBeingCreated.Add(typeof(T), null);
|
||||
try
|
||||
{
|
||||
return new T();
|
||||
}
|
||||
catch (System.Reflection.TargetInvocationException ex) when (ex.InnerException is object)
|
||||
{
|
||||
string BetterMessage = Microsoft.VisualBasic.CompilerServices.Utils.GetResourceString("WinForms_SeeInnerException", ex.InnerException.Message);
|
||||
throw new InvalidOperationException(BetterMessage, ex.InnerException);
|
||||
}
|
||||
finally
|
||||
{
|
||||
m_FormBeingCreated.Remove(typeof(T));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return Instance;
|
||||
}
|
||||
}
|
||||
|
||||
[DebuggerHidden()]
|
||||
private void Dispose__Instance__<T>(ref T instance) where T : Form
|
||||
{
|
||||
instance.Dispose();
|
||||
instance = null;
|
||||
}
|
||||
|
||||
[DebuggerHidden()]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public MyForms() : base()
|
||||
{
|
||||
}
|
||||
|
||||
[ThreadStatic()]
|
||||
private static Hashtable m_FormBeingCreated;
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public override bool Equals(object o)
|
||||
{
|
||||
return base.Equals(o);
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
internal new Type GetType()
|
||||
{
|
||||
return typeof(MyForms);
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public override string ToString()
|
||||
{
|
||||
return base.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
private static ThreadSafeObjectProvider<MyForms> m_MyFormsObjectProvider = new ThreadSafeObjectProvider<MyForms>();
|
||||
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia */
|
||||
[System.ComponentModel.Design.HelpKeyword("My.WebServices")]
|
||||
internal static MyWebServices WebServices
|
||||
{
|
||||
[DebuggerHidden()]
|
||||
get
|
||||
{
|
||||
return m_MyWebServicesObjectProvider.GetInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[MyGroupCollection("System.Web.Services.Protocols.SoapHttpClientProtocol", "Create__Instance__", "Dispose__Instance__", "")]
|
||||
internal sealed class MyWebServices
|
||||
{
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[DebuggerHidden()]
|
||||
public override bool Equals(object o)
|
||||
{
|
||||
return base.Equals(o);
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[DebuggerHidden()]
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[DebuggerHidden()]
|
||||
internal new Type GetType()
|
||||
{
|
||||
return typeof(MyWebServices);
|
||||
}
|
||||
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[DebuggerHidden()]
|
||||
public override string ToString()
|
||||
{
|
||||
return base.ToString();
|
||||
}
|
||||
|
||||
[DebuggerHidden()]
|
||||
private static T Create__Instance__<T>(T instance) where T : new()
|
||||
{
|
||||
if (instance is null)
|
||||
{
|
||||
return new T();
|
||||
}
|
||||
else
|
||||
{
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
[DebuggerHidden()]
|
||||
private void Dispose__Instance__<T>(ref T instance)
|
||||
{
|
||||
instance = default;
|
||||
}
|
||||
|
||||
[DebuggerHidden()]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public MyWebServices() : base()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private readonly static ThreadSafeObjectProvider<MyWebServices> m_MyWebServicesObjectProvider = new ThreadSafeObjectProvider<MyWebServices>();
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[System.Runtime.InteropServices.ComVisible(false)]
|
||||
internal sealed class ThreadSafeObjectProvider<T> where T : new()
|
||||
{
|
||||
internal T GetInstance
|
||||
{
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElseDirectiveTrivia */
|
||||
[DebuggerHidden()]
|
||||
get
|
||||
{
|
||||
if (m_ThreadStaticValue is null)
|
||||
m_ThreadStaticValue = new T();
|
||||
return m_ThreadStaticValue;
|
||||
}
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
}
|
||||
|
||||
[DebuggerHidden()]
|
||||
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
public ThreadSafeObjectProvider() : base()
|
||||
{
|
||||
}
|
||||
|
||||
/* TODO ERROR: Skipped IfDirectiveTrivia *//* TODO ERROR: Skipped DisabledTextTrivia *//* TODO ERROR: Skipped ElseDirectiveTrivia */
|
||||
[System.Runtime.CompilerServices.CompilerGenerated()]
|
||||
[ThreadStatic()]
|
||||
private static T m_ThreadStaticValue;
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
}
|
||||
}
|
||||
}
|
||||
/* TODO ERROR: Skipped EndIfDirectiveTrivia */
|
||||
26
imagecatalog/My Project/Settings.Designer.cs
generated
Normal file
26
imagecatalog/My Project/Settings.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ImageCatalog.My {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
179
imagecatalog/ParametriSetup.cs
Normal file
179
imagecatalog/ParametriSetup.cs
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
using System;
|
||||
using System.Data;
|
||||
using Microsoft.VisualBasic;
|
||||
|
||||
namespace ImageCatalog
|
||||
{
|
||||
public class ParametriSetup
|
||||
{
|
||||
private DataSet _ElencoParametri;
|
||||
private string _NomeFileSetup;
|
||||
|
||||
public ParametriSetup(string FileSetup)
|
||||
{
|
||||
_ElencoParametri = new DataSet();
|
||||
_NomeFileSetup = FileSetup;
|
||||
if (!string.IsNullOrEmpty(FileSetup))
|
||||
{
|
||||
CaricaParametriSetup();
|
||||
}
|
||||
}
|
||||
|
||||
public ParametriSetup()
|
||||
{
|
||||
_ElencoParametri = new DataSet();
|
||||
_NomeFileSetup = "";
|
||||
}
|
||||
|
||||
public void CaricaParametriSetup()
|
||||
{
|
||||
_ElencoParametri = LeggiXmlDataSet("Setup", _NomeFileSetup, "Nome");
|
||||
}
|
||||
|
||||
public void SalvaParametriSetup()
|
||||
{
|
||||
if (System.IO.File.Exists(_NomeFileSetup) == true)
|
||||
{
|
||||
FileSystem.Kill(_NomeFileSetup);
|
||||
}
|
||||
|
||||
_ElencoParametri.WriteXml(_NomeFileSetup);
|
||||
}
|
||||
|
||||
public string LeggiParametroString(string NomeParametro)
|
||||
{
|
||||
string Risposta = "";
|
||||
try
|
||||
{
|
||||
var LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
|
||||
foreach (var LaRiga in LElenco)
|
||||
Risposta = LaRiga["Valore"].ToString();
|
||||
}
|
||||
catch
|
||||
{
|
||||
Risposta = "";
|
||||
}
|
||||
|
||||
return Risposta;
|
||||
}
|
||||
|
||||
public bool LeggiParametroBoolean(string NomeParametro)
|
||||
{
|
||||
string Risposta = "";
|
||||
try
|
||||
{
|
||||
var LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
|
||||
foreach (var LaRiga in LElenco)
|
||||
Risposta = LaRiga["Valore"].ToString();
|
||||
}
|
||||
catch
|
||||
{
|
||||
Risposta = "";
|
||||
}
|
||||
|
||||
switch (Risposta.ToUpper() ?? "")
|
||||
{
|
||||
case "TRUE":
|
||||
case "OK":
|
||||
case "SI":
|
||||
case "1":
|
||||
case "YES":
|
||||
case "VERO":
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void AggiornaParametro(string NomeParametro, object ValoreParametro)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_ElencoParametri.Tables["Setup"] is null)
|
||||
{
|
||||
var TabellaTmp = new DataTable("Setup");
|
||||
DataRow RigaTmp;
|
||||
DataColumn LaColonna;
|
||||
LaColonna = TabellaTmp.Columns.Add("Nome", Type.GetType("System.String"));
|
||||
LaColonna = TabellaTmp.Columns.Add("Valore", Type.GetType("System.String"));
|
||||
|
||||
// * Aggiunge alla tabella tutte le righe
|
||||
RigaTmp = TabellaTmp.NewRow();
|
||||
RigaTmp["Nome"] = NomeParametro;
|
||||
RigaTmp["Valore"] = ValoreParametro;
|
||||
TabellaTmp.Rows.Add(RigaTmp);
|
||||
_ElencoParametri.Tables.Add(TabellaTmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
var LElenco = _ElencoParametri.Tables["Setup"].Select("Nome='" + NomeParametro + "'");
|
||||
if (LElenco.Length == 0)
|
||||
{
|
||||
DataRow LaRiga;
|
||||
LaRiga = _ElencoParametri.Tables["Setup"].NewRow();
|
||||
LaRiga["Nome"] = NomeParametro;
|
||||
LaRiga["Valore"] = ValoreParametro;
|
||||
_ElencoParametri.Tables["Setup"].Rows.Add(LaRiga);
|
||||
}
|
||||
else
|
||||
{
|
||||
LElenco[0]["Valore"] = ValoreParametro;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private DataTable LeggiXmlDataTable(string NomeTabella, string NomeFileXml, string NomeColonnaChiave = "")
|
||||
{
|
||||
// * Crea e Legge il dataset dal file xml
|
||||
var DataSetXml = new DataSet();
|
||||
DataSetXml.ReadXml(NomeFileXml);
|
||||
|
||||
// * Aggiunge il campo chiave
|
||||
if (!string.IsNullOrEmpty(NomeColonnaChiave))
|
||||
{
|
||||
DataSetXml.Tables[NomeTabella].Constraints.Add(NomeColonnaChiave, DataSetXml.Tables[NomeTabella].Columns[NomeColonnaChiave], true);
|
||||
}
|
||||
|
||||
// * Restituisce la risposta
|
||||
return DataSetXml.Tables[NomeTabella];
|
||||
}
|
||||
|
||||
private static DataSet LeggiXmlDataSet(string NomeTabella, string NomeFileXml, string NomeColonnaChiave = "")
|
||||
{
|
||||
// * Crea e Legge il dataset dal file xml
|
||||
var DataSetXml = new DataSet();
|
||||
DataSetXml.ReadXml(NomeFileXml);
|
||||
|
||||
// * Aggiunge il campo chiave
|
||||
if (!string.IsNullOrEmpty(NomeColonnaChiave))
|
||||
{
|
||||
DataSetXml.Tables[NomeTabella].Constraints.Add(NomeColonnaChiave, DataSetXml.Tables[NomeTabella].Columns[NomeColonnaChiave], true);
|
||||
}
|
||||
|
||||
// * Restituisce la risposta
|
||||
return DataSetXml;
|
||||
}
|
||||
|
||||
public string NomeFileSetup
|
||||
{
|
||||
get
|
||||
{
|
||||
return _NomeFileSetup;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
_NomeFileSetup = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
602
imagecatalog/PicSettings.cs
Normal file
602
imagecatalog/PicSettings.cs
Normal file
|
|
@ -0,0 +1,602 @@
|
|||
|
||||
|
||||
// Module PicSettings
|
||||
|
||||
// Private _DirectorySorgente As String
|
||||
// Private _DirectoryDestinazione As String
|
||||
|
||||
// Private _DimVert As Integer
|
||||
// Private _MargVert As Integer
|
||||
|
||||
|
||||
// Private _DimStandard As Integer
|
||||
// Private _DimStandardMiniatura As Integer
|
||||
|
||||
// Private _NomeData As Boolean
|
||||
// Private _TestoNome As Boolean
|
||||
// Private _UsaOrarioMiniatura As Boolean
|
||||
// Private _UsaOrarioTestoApplicare As Boolean
|
||||
// Private _UsaTempoGaraTestoApplicare As Boolean
|
||||
// Private _TestoFirmaStart As String
|
||||
// Private _TestoFirmaStartV As String
|
||||
// Private _DataPartenza As DateTime
|
||||
// Private _TestoOrario As String
|
||||
|
||||
// Private _UsaRotazioneAutomatica As Boolean
|
||||
// Private _UsaForzaJpg As Boolean
|
||||
|
||||
// Private _LarghezzaSmall As Integer
|
||||
// Private _AltezzaSmall As Integer
|
||||
|
||||
// Private _CreaMiniature As Boolean
|
||||
// Private _AggiungiScritteMiniature As Boolean
|
||||
// Private _AggTempoGaraMin As Boolean
|
||||
// Private _AggNumTempMin As Boolean
|
||||
|
||||
// Private _Suffisso As String
|
||||
// Private _Codice As String
|
||||
|
||||
// Private _Trasparenza As Integer
|
||||
// Private _IlFont As String
|
||||
// Private _Grassetto As Boolean
|
||||
|
||||
// Private _Posizione As String
|
||||
// Private _Allineamento As String
|
||||
// Private _Margine As Integer
|
||||
|
||||
// Private _LogoAltezza As Integer
|
||||
// Private _LogoLarghezza As Integer
|
||||
|
||||
// Private _fontColoreRGB As Color
|
||||
|
||||
// Private _LogoAggiungi As Boolean
|
||||
// Private _LogoNomeFile As String
|
||||
// Private _LogoTrasparenza As String
|
||||
// Private _LogoMargine As String
|
||||
// Private _LogoPosizioneH As String
|
||||
// Private _LogoPosizioneV As String
|
||||
|
||||
// Private _FotoGrandeDimOrigina As Boolean
|
||||
// Private _AltezzaBig As Integer
|
||||
// Private _LarghezzaBig As Integer
|
||||
// Private _DestDir As DirectoryInfo
|
||||
// Private _DimMin As Integer
|
||||
|
||||
// Private _TestoMin As Boolean
|
||||
|
||||
// Private _SecretDefault As Boolean
|
||||
// Private _SecretBig As Boolean
|
||||
// Private _SecretSmall As Boolean
|
||||
|
||||
// Private _SecretPathSmall As String
|
||||
// Private _SecretPathBig As String
|
||||
|
||||
// Private _jpegQuality As Long
|
||||
// Private _jpegQualityMin As Long
|
||||
|
||||
// Private FotoRuotaADestra As Boolean = False
|
||||
// Private FotoRuotaASinistra As Boolean = False
|
||||
|
||||
// Private TempMinText As String = ""
|
||||
|
||||
// Private _mainForm As MainForm
|
||||
|
||||
// 'Private progressBar As System.Windows.Forms.ProgressBar
|
||||
|
||||
|
||||
|
||||
// Public Property mainForm() As MainForm
|
||||
// Get
|
||||
// Return _mainForm
|
||||
// End Get
|
||||
// Set(ByVal value As MainForm)
|
||||
// _mainForm = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DirectorySorgente() As String
|
||||
// Get
|
||||
// Return _DirectorySorgente
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _DirectorySorgente = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DirectoryDestinazione() As String
|
||||
// Get
|
||||
// Return _DirectoryDestinazione
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _DirectoryDestinazione = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property TestoFirmaStart() As String
|
||||
// Get
|
||||
// Return _TestoFirmaStart
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _TestoFirmaStart = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property TestoFirmaStartV() As String
|
||||
// Get
|
||||
// Return _TestoFirmaStartV
|
||||
// End Get
|
||||
|
||||
// Set(ByVal value As String)
|
||||
// _TestoFirmaStartV = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DataPartenza() As DateTime
|
||||
// Get
|
||||
// Return _DataPartenza
|
||||
// End Get
|
||||
// Set(ByVal value As DateTime)
|
||||
// _DataPartenza = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property TestoOrario() As String
|
||||
// Get
|
||||
// Return _TestoOrario
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _TestoOrario = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DimStandard() As Integer
|
||||
// Get
|
||||
// Return _DimStandard
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _DimStandard = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DimStandardMiniatura() As Integer
|
||||
// Get
|
||||
// Return _DimStandardMiniatura
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _DimStandardMiniatura = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property NomeData() As Boolean
|
||||
// Get
|
||||
// Return _NomeData
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _NomeData = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property TestoNome() As Boolean
|
||||
// Get
|
||||
// Return _TestoNome
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _TestoNome = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property UsaOrarioMiniatura() As Boolean
|
||||
// Get
|
||||
// Return _UsaOrarioMiniatura
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _UsaOrarioMiniatura = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property UsaOrarioTestoApplicare() As Boolean
|
||||
// Get
|
||||
// Return _UsaOrarioTestoApplicare
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _UsaOrarioTestoApplicare = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property UsaTempoGaraTestoApplicare() As Boolean
|
||||
// Get
|
||||
// Return _UsaTempoGaraTestoApplicare
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _UsaTempoGaraTestoApplicare = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property UsaRotazioneAutomatica() As Boolean
|
||||
// Get
|
||||
// Return _UsaRotazioneAutomatica
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _UsaRotazioneAutomatica = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property UsaForzaJpg() As Boolean
|
||||
// Get
|
||||
// Return _UsaForzaJpg
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _UsaForzaJpg = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
|
||||
|
||||
// Public Property LarghezzaSmall() As Integer
|
||||
// Get
|
||||
// Return _LarghezzaSmall
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _LarghezzaSmall = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property AltezzaSmall() As Integer
|
||||
// Get
|
||||
// Return _AltezzaSmall
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _AltezzaSmall = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
|
||||
// Public Property CreaMiniature() As Boolean
|
||||
// Get
|
||||
// Return _CreaMiniature
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _CreaMiniature = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property AggiungiScritteMiniature() As Boolean
|
||||
// Get
|
||||
// Return _AggiungiScritteMiniature
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _AggiungiScritteMiniature = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
|
||||
// Public Property Suffisso() As String
|
||||
// Get
|
||||
// Return _Suffisso
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _Suffisso = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property Codice() As String
|
||||
// Get
|
||||
// Return _Codice
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _Codice = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
|
||||
// Public Property Trasparenza() As Integer
|
||||
// Get
|
||||
// Return _Trasparenza
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _Trasparenza = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property IlFont() As String
|
||||
// Get
|
||||
// Return _IlFont
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _IlFont = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property Grassetto() As Boolean
|
||||
// Get
|
||||
// Return _Grassetto
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _Grassetto = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property Posizione() As String
|
||||
// Get
|
||||
// Return _Posizione
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _Posizione = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property Allineamento() As String
|
||||
// Get
|
||||
// Return _Allineamento
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _Allineamento = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property Margine() As Integer
|
||||
// Get
|
||||
// Return _Margine
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _Margine = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoAltezza() As Integer
|
||||
// Get
|
||||
// Return _LogoAltezza
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _LogoAltezza = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoLarghezza() As Integer
|
||||
// Get
|
||||
// Return _LogoLarghezza
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _LogoLarghezza = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property fontColoreRGB() As Color
|
||||
// Get
|
||||
// Return _fontColoreRGB
|
||||
// End Get
|
||||
// Set(ByVal value As Color)
|
||||
// _fontColoreRGB = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoAggiungi() As Boolean
|
||||
// Get
|
||||
// Return _LogoAggiungi
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _LogoAggiungi = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoNomeFile() As String
|
||||
// Get
|
||||
// Return _LogoNomeFile
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _LogoNomeFile = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoTrasparenza() As String
|
||||
// Get
|
||||
// Return _LogoTrasparenza
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _LogoTrasparenza = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoMargine() As String
|
||||
// Get
|
||||
// Return _LogoMargine
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _LogoMargine = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoPosizioneH() As String
|
||||
// Get
|
||||
// Return _LogoPosizioneH
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _LogoPosizioneH = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LogoPosizioneV() As String
|
||||
// Get
|
||||
// Return _LogoPosizioneV
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _LogoPosizioneV = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property FotoGrandeDimOrigina() As Boolean
|
||||
// Get
|
||||
// Return _FotoGrandeDimOrigina
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _FotoGrandeDimOrigina = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property AltezzaBig() As Integer
|
||||
// Get
|
||||
// Return _AltezzaBig
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _AltezzaBig = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property LarghezzaBig() As Integer
|
||||
// Get
|
||||
// Return _LarghezzaBig
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _LarghezzaBig = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DestDir() As DirectoryInfo
|
||||
// Get
|
||||
// Return _DestDir
|
||||
// End Get
|
||||
// Set(ByVal value As DirectoryInfo)
|
||||
// _DestDir = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DimVert() As Integer
|
||||
// Get
|
||||
// Return _DimVert
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _DimVert = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property MargVert() As Integer
|
||||
// Get
|
||||
// Return _MargVert
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _MargVert = value
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property TestoMin() As Boolean
|
||||
// Get
|
||||
// Return _TestoMin
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _TestoMin = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property DimMin() As Integer
|
||||
// Get
|
||||
// Return _DimMin
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Integer)
|
||||
// _DimMin = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property SecretDefault() As Boolean
|
||||
// Get
|
||||
// Return _SecretDefault
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _SecretDefault = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property SecretBig() As Boolean
|
||||
// Get
|
||||
// Return _SecretBig
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _SecretBig = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property SecretSmall() As Boolean
|
||||
// Get
|
||||
// Return _SecretSmall
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _SecretSmall = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property SecretPathSmall() As String
|
||||
// Get
|
||||
// Return _SecretPathSmall
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _SecretPathSmall = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property SecretPathBig() As String
|
||||
// Get
|
||||
// Return _SecretPathBig
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As String)
|
||||
// _SecretPathBig = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property AggTempoGaraMin() As Boolean
|
||||
// Get
|
||||
// Return _AggTempoGaraMin
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _AggTempoGaraMin = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property AggNumTempMin() As Boolean
|
||||
// Get
|
||||
// Return _AggNumTempMin
|
||||
|
||||
// End Get
|
||||
// Set(ByVal value As Boolean)
|
||||
// _AggNumTempMin = value
|
||||
|
||||
// End Set
|
||||
// End Property
|
||||
|
||||
// Public Property jpegQuality() As Long
|
||||
// Get
|
||||
// Return _jpegQuality
|
||||
// End Get
|
||||
// Set(ByVal value As Long)
|
||||
// _jpegQuality = value
|
||||
// End Set
|
||||
|
||||
// End Property
|
||||
|
||||
// Public Property jpegQualityMin() As Long
|
||||
// Get
|
||||
// Return _jpegQualityMin
|
||||
// End Get
|
||||
// Set(ByVal value As Long)
|
||||
// _jpegQualityMin = value
|
||||
// End Set
|
||||
|
||||
// End Property
|
||||
// End Module
|
||||
273
imagecatalog/XYThreadPool.cs
Normal file
273
imagecatalog/XYThreadPool.cs
Normal file
|
|
@ -0,0 +1,273 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Threading;
|
||||
|
||||
namespace ImageCatalog
|
||||
{
|
||||
public delegate void ThreadErrorHandlerDelegate(ThreadPoolWorkItem oWorkItem, Exception oError);
|
||||
|
||||
public class ThreadPoolWorkItem
|
||||
{
|
||||
public bool m_bStoreOutput = false;
|
||||
public string m_sName = "";
|
||||
public Delegate m_pMethod = null;
|
||||
public object[] m_pInput = null;
|
||||
public object m_oOutput = null;
|
||||
public Exception m_oException = null;
|
||||
|
||||
public ThreadPoolWorkItem()
|
||||
{
|
||||
}
|
||||
|
||||
public ThreadPoolWorkItem(string sName, Delegate pMethod, object[] pInput, bool bStoreOutput)
|
||||
{
|
||||
m_sName = sName;
|
||||
m_pMethod = pMethod;
|
||||
m_pInput = pInput;
|
||||
m_bStoreOutput = bStoreOutput;
|
||||
}
|
||||
}
|
||||
|
||||
public class XYThreadPool
|
||||
{
|
||||
public XYThreadPool()
|
||||
{
|
||||
m_delegateThreadErrorHandler = new ThreadErrorHandlerDelegate(OnThreadError);
|
||||
}
|
||||
|
||||
private Hashtable m_htThreads = new Hashtable(256);
|
||||
private int m_nMinThreadCount = 5;
|
||||
private int m_nMaxThreadCount = 10;
|
||||
private int m_nShutdownPause = 200;
|
||||
private int m_nServerPause = 25;
|
||||
private bool m_bContinue = false;
|
||||
private Exception m_oException = null;
|
||||
private Queue m_qInput = new Queue(1024);
|
||||
private Queue m_qOutput = new Queue(1024);
|
||||
private Delegate m_delegateThreadErrorHandler;
|
||||
|
||||
private void ThreadProc()
|
||||
{
|
||||
while (m_bContinue)
|
||||
{
|
||||
object obj = null;
|
||||
Monitor.Enter(this);
|
||||
if (m_qInput.Count > 0)
|
||||
obj = m_qInput.Dequeue();
|
||||
Monitor.Exit(this);
|
||||
if (obj is null)
|
||||
{
|
||||
bool bQuit = false;
|
||||
Monitor.Enter(this);
|
||||
if (m_htThreads.Count > m_nMinThreadCount)
|
||||
{
|
||||
m_htThreads.Remove(Thread.CurrentThread.Name);
|
||||
bQuit = true;
|
||||
}
|
||||
|
||||
Monitor.Exit(this);
|
||||
if (bQuit)
|
||||
return;
|
||||
Thread.Sleep(10 * m_nServerPause);
|
||||
}
|
||||
else
|
||||
{
|
||||
ThreadPoolWorkItem oWorkItem = (ThreadPoolWorkItem)obj;
|
||||
// oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput)
|
||||
try
|
||||
{
|
||||
oWorkItem.m_oOutput = oWorkItem.m_pMethod.DynamicInvoke(oWorkItem.m_pInput);
|
||||
}
|
||||
catch (Exception oBug)
|
||||
{
|
||||
if (m_delegateThreadErrorHandler is object)
|
||||
{
|
||||
try
|
||||
{
|
||||
var pInput = new object[] { oWorkItem, oBug };
|
||||
m_delegateThreadErrorHandler.DynamicInvoke(pInput);
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (oWorkItem.m_bStoreOutput)
|
||||
{
|
||||
Monitor.Enter(m_qOutput);
|
||||
m_qOutput.Enqueue(oWorkItem);
|
||||
Monitor.Exit(m_qOutput);
|
||||
}
|
||||
|
||||
Thread.Sleep(m_nServerPause);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnThreadError(ThreadPoolWorkItem oWorkItem, Exception oError)
|
||||
{
|
||||
if (oWorkItem is null)
|
||||
{
|
||||
m_oException = oError;
|
||||
}
|
||||
else
|
||||
{
|
||||
oWorkItem.m_oException = oError;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetThreadErrorHandler(ThreadErrorHandlerDelegate pMethod)
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
m_delegateThreadErrorHandler = pMethod;
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
|
||||
public void SetServerPause(int nMilliseconds)
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
if (nMilliseconds > 9 & nMilliseconds < 101)
|
||||
m_nServerPause = nMilliseconds;
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
|
||||
public void SetShutdownPause(int nMilliseconds)
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
m_nShutdownPause = nMilliseconds;
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
|
||||
public Exception GetException()
|
||||
{
|
||||
return m_oException;
|
||||
}
|
||||
|
||||
public void InsertWorkItem(ThreadPoolWorkItem oWorkItem)
|
||||
{
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
m_qInput.Enqueue(oWorkItem);
|
||||
if (m_bContinue && m_qInput.Count > m_htThreads.Count && m_htThreads.Count < m_nMaxThreadCount)
|
||||
{
|
||||
var th = new Thread(ThreadProc);
|
||||
th.Name = Guid.NewGuid().ToString();
|
||||
m_htThreads.Add(th.Name, th);
|
||||
th.Start();
|
||||
}
|
||||
}
|
||||
catch (Exception oBug)
|
||||
{
|
||||
m_oException = oBug;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void InsertWorkItem(string sName, Delegate pMethod, object[] pArgs, bool bStoreOutput)
|
||||
{
|
||||
InsertWorkItem(new ThreadPoolWorkItem(sName, pMethod, pArgs, bStoreOutput));
|
||||
}
|
||||
|
||||
public ThreadPoolWorkItem ExtractWorkItem()
|
||||
{
|
||||
object oWorkItem = null;
|
||||
Monitor.Enter(m_qOutput);
|
||||
if (m_qOutput.Count > 0)
|
||||
oWorkItem = m_qOutput.Dequeue();
|
||||
Monitor.Exit(m_qOutput);
|
||||
if (oWorkItem is null)
|
||||
return null;
|
||||
return (ThreadPoolWorkItem)oWorkItem;
|
||||
}
|
||||
|
||||
public bool StartThreadPool(int nMinThreadCount = 5, int nMaxThreadCount = 10)
|
||||
{
|
||||
try
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
if (m_bContinue == false)
|
||||
{
|
||||
m_bContinue = true;
|
||||
if (nMinThreadCount > 0)
|
||||
{
|
||||
m_nMinThreadCount = nMinThreadCount;
|
||||
}
|
||||
|
||||
if (nMaxThreadCount > m_nMinThreadCount)
|
||||
{
|
||||
m_nMaxThreadCount = nMaxThreadCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_nMaxThreadCount = 2 * m_nMinThreadCount;
|
||||
}
|
||||
|
||||
int i;
|
||||
var loopTo = m_nMinThreadCount;
|
||||
for (i = 1; i <= loopTo; i++)
|
||||
{
|
||||
var th = new Thread(ThreadProc);
|
||||
th.Name = Guid.NewGuid().ToString();
|
||||
m_htThreads.Add(th.Name, th);
|
||||
th.Start();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception oBug)
|
||||
{
|
||||
m_bContinue = false;
|
||||
m_oException = oBug;
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void StopThreadPool()
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
m_bContinue = false;
|
||||
Thread.Sleep(Math.Max(200, m_nShutdownPause));
|
||||
if (m_nShutdownPause > 0)
|
||||
{
|
||||
var dict = m_htThreads.GetEnumerator();
|
||||
while (dict.MoveNext())
|
||||
{
|
||||
Thread th = (Thread)dict.Value;
|
||||
if (th.IsAlive)
|
||||
{
|
||||
try
|
||||
{
|
||||
th.Abort();
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_htThreads.Clear();
|
||||
m_qInput.Clear();
|
||||
// m_qOutput.Clear()
|
||||
Monitor.Exit(this);
|
||||
}
|
||||
|
||||
public int GetThreadCount()
|
||||
{
|
||||
Monitor.Enter(this);
|
||||
int nCount = m_htThreads.Count;
|
||||
Monitor.Exit(this);
|
||||
return nCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,35 +1,39 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<system.diagnostics>
|
||||
<sources>
|
||||
<!-- Questa sezione definisce la configurazione di registrazione per My.Application.Log -->
|
||||
<source name="DefaultSource" switchName="DefaultSwitch">
|
||||
<listeners>
|
||||
<add name="FileLog" />
|
||||
<add name="FileLog"/>
|
||||
<!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante -->
|
||||
<!--<add name="EventLog"/>-->
|
||||
</listeners>
|
||||
</source>
|
||||
</sources>
|
||||
<switches>
|
||||
<add name="DefaultSwitch" value="Information" />
|
||||
<add name="DefaultSwitch" value="Information"/>
|
||||
</switches>
|
||||
<sharedListeners>
|
||||
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
|
||||
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
|
||||
<!-- Per scrivere nel log eventi dell'applicazione, rimuovere il commento dalla sezione sottostante e sostituire APPLICATION_NAME con il nome dell'applicazione -->
|
||||
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
|
||||
</sharedListeners>
|
||||
</system.diagnostics>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1"/>
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Ben.Demystifier" version="0.3.0" targetFramework="net472" />
|
||||
<package id="Microsoft.WindowsAPICodePack-Core" version="1.1.0.2" targetFramework="net472" />
|
||||
<package id="Microsoft.WindowsAPICodePack-Shell" version="1.1.0.0" targetFramework="net472" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net472" />
|
||||
<package id="System.Collections.Immutable" version="5.0.0" targetFramework="net472" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net472" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net472" />
|
||||
<package id="System.Reflection.Metadata" version="5.0.0" targetFramework="net472" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.5.3" targetFramework="net472" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net472" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net472" />
|
||||
</packages>
|
||||
Loading…
Add table
Add a link
Reference in a new issue