Hi jaeshort,
Have you tried using a BackgroundWorker. It worked for me.
private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
BGW_argumento bgw_arg = (BGW_argumento)e.Argument;
BackgroundWorker worker = sender as BackgroundWorker;
if (worker.CancellationPending == true)
{
e.Cancel = true;
}
else
{
RunSearch(bgw_arg).Wait(60*1000);
e.Result = bgw_arg;
worker.ReportProgress(100);
}
}
private async Task RunSearch(BGW_argumento p_bgw_argumento)
{
AOSplunkServer aosplunkserver = p_bgw_argumento.aosplunkserver;
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) =>
{ return true;};
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
var service = new Service(aosplunkserver.scheme, aosplunkserver.host, aosplunkserver.port);
try
{ await service.LogOnAsync(aosplunkserver.user, aosplunkserver.password);}
catch (Exception ex)
{ p_bgw_argumento.exception = ex;}
Job job = await service.Jobs.CreateAsync("search " + aosplunkserver.search);
SearchResultStream stream;
using (stream = await job.GetSearchResultsAsync())
{
try
{
p_bgw_argumento.result = "";
foreach (SearchResult result in stream)
{
//Console.WriteLine(string.Format("{0:D8}: {1}", stream.ReadCount, result));
p_bgw_argumento.result = p_bgw_argumento.result + result.ToString() + Environment.NewLine;
}
p_bgw_argumento.result = p_bgw_argumento.result.Trim();
}
catch (Exception e)
{
p_bgw_argumento.exception = e;
}
}
resultado = p_bgw_argumento.result;
}
struct BGW_argumento
{
public string result;
public Exception exception;
public AOSplunkServer aosplunkserver;
}
class AOSplunkServer
{
// Propiedades de usuario
public string user { get; }
public string password { get; }
// Propiedades de servidor
public string host { get; }
public int port { get; }
public Splunk.Client.Scheme scheme { get; } = Splunk.Client.Scheme.Https;
public string search { get; set; }
public string result { get; set; }
public AOSplunkServer(string p_user, string p_password, string p_host, int p_port)
{
user = p_user;
password = p_password;
host = p_host;
port = p_port;
}
}
... View more