Immagine
 Davide si cimenta provetto fotografo in Kenia... di Marco Tenuti
 
"
Santa Lucia no l'è più quela de na olta. Adesso la ghe porta el Carbon a quei brai, e l'Aluminio a quei catii... A quei molto brai la ghe porta el Carbotecture.

"
 



Miei sponsor
Gli sponsor che pago io

Social Network



Se vuoi contattarmi via e-mail:

t e n u t i @ l i b e r o . i t
Wikio - Top dei blog
\\ Home Page : Storico : .NET Framework (inverti l'ordine)
Di seguito gli interventi pubblicati in questa sezione, in ordine cronologico.
 
 
Di Marco Tenuti (del 27/10/2014 @ 10:00:46, in .NET Framework, linkato 762 volte)

Just posted on MSDN Forum...

It's since three weeks that sometimes my local installation of Visual Studio .NET 2010 editor changes the source code lines adding several decimal digits when I recode the function or subroutine content (with the CTRL-K, CTRL-D shortcuts for example):

    CORRECT SOURCE

    yrif1 += 0.05 * _currentScale
    DrawScale(_currentScale, New Point2D(xrif1 + 0.2 * _currentScale, yrif1))

    ALTERED SOURCE

    yrif1 += 0.050000000000000003 * _currentScale
    DrawScale(_currentScale, New Point2D(xrif1 + 0.20000000000000001 * _currentScale, yrif1))

If I delete the less significant digits, the editor adds them again, when the cursors leaves the source code line. Do I need to uncheck Pretty listing (reformatting) of code in the Options > Text Editor > Basic > VB Specific panel? I would like to preserve such option, because it has always done a good job at reformatting the whole source code. I can't miss it.

It seems that behaviour started appearing in the last month, maybe some system patch. My system is a Windows 8.1 regular installation in Italian language and international settings are set as default.

 
Di Marco Tenuti (del 13/05/2013 @ 16:03:13, in .NET Framework, linkato 1430 volte)

Metodo molto sporco per cambiare il caporiga in un file scritto con System.IO.StreamWriter o la classe ereditata TextWriter. Ha il piccolo difetto che deve caricare l'intero file in memoria, pertanto valutate altre soluzioni, se quello può rappresentare un problema per il vostro caso.

Nel codice di qui sotto si passa dal caporiga Windows (Cr + Lf) a quello Unix (Lf):

Dim file As New System.IO.StreamReader(path)
Dim data As String
data = file.ReadToEnd().Replace(vbCrLf,vbLf)
file.Close()
Dim writer As New System.IO.StreamWriter(path, False)
writer.Write(data)
writer.Flush()
writer.Close()

Purtroppo la soluzione più banale sarebbe quella di cambiare la variabile d'ambiente:

System.Environment.NewLine = vbLf

ma tale variabile è readonly, quindi per implementare una soluzione elegante è necessario ricorrere a scrivere una classe che sovrascrive qualcosa di StreamWriter.

 
Di Marco Tenuti (del 21/12/2012 @ 15:32:14, in .NET Framework, linkato 2448 volte)

Sono incappato in questa eccezione con .NET Framework 4.0 e Winforms, usando un meccanismo di callback asincrona e thread pooling per la gestione del timeout:

System.InvalidOperationException was unhandled
Message=L'operazione di annullamento ha rilevato un contesto differente da quello applicato nell'operazione Set corrispondente. Probabilmente un contesto è stato Set nel thread e non è stato ripristinato (annullato).

   in System.Threading.SynchronizationContextSwitcher.Undo()
   in System.Threading.ExecutionContextSwitcher.Undo()
   in System.Threading.ExecutionContext.runFinallyCode(Object userData, 
			Boolean exceptionThrown)
   in System.Runtime.CompilerServices.RuntimeHelpers.ExecuteBackoutCodeHelper
			(Object backoutCode, Object userData, Boolean exceptionThrown)
   in System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup
			(TryCode code, CleanupCode backoutCode, Object userData)
   in System.Threading.ExecutionContext.RunInternal(ExecutionContext 
			executionContext, ContextCallback callback, Object state)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, 
			ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, 
			ContextCallback callback, Object state)
   in System.Net.ContextAwareResult.Complete(IntPtr userToken)
   in System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
   in System.Net.HttpWebRequest.SetResponse(Exception E)
   in System.Net.HttpWebRequest.SetAndOrProcessResponse(Object responseOrException)
   in System.Net.ConnectionReturnResult.SetResponses(ConnectionReturnResult returnResult)
   in System.Net.Connection.CompleteConnectionWrapper(Object request, Object state)
   in System.Net.PooledStream.ConnectionCallback(Object owningObject, 
			Exception e, Socket socket, IPAddress address)
   in System.Net.ServicePoint.ConnectSocketCallback(System.IAsyncResult)
   in System.Net.LazyAsyncResult.Complete(IntPtr)
   in System.Net.ContextAwareResult.Complete(IntPtr)
   in System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)
   in System.Net.Sockets.Socket.ConnectCallback()
   in System.Net.Sockets.Socket.RegisteredWaitCallback(System.Object, Boolean)
   in System.Threading._ThreadPoolWaitOrTimerCallback.
			PerformWaitOrTimerCallback(System.Object, Boolean)

Pare che in Microsoft non ne siano venuti a capo, ma al momento la soluzione pare essere la seguente:

  1. non invocare Application.DoEvents al di fuori del main thread del processo
  2. usare il l'invocazione tramite Invoke/BeginInvoke nel caso in cui l'evento scatenante risponda vero all'interrogazione myControl.InvokeRequired

In realtà il tamponamento maggiore al problema pare essere dato dall'instanziazione della callback assicurandosi di resettare il contesto di sincronizzazione:

  Dim oldSyncContext As System.Threading.SynchronizationContext

  oldSyncContext = System.Threading.SynchronizationContext.Current
    System.Threading.SynchronizationContext.SetSynchronizationContext(Nothing)
    myAsyncResult = myRequest.BeginGetResponse(AddressOf ReadResponseAsync, myRequest)
    If (Not _doSynchronous) Then
      System.Threading.ThreadPool.RegisterWaitForSingleObject(myAsyncResult.AsyncWaitHandle,
        New System.Threading.WaitOrTimerCallback(AddressOf TimeoutAsync),
         myRequest, timeoutMs, True)
    End If
    System.Threading.SynchronizationContext.SetSynchronizationContext(oldSyncContext)

Su stackoverflow.com ho trovato questo ottimo articolo e discussione.

 
Di Marco Tenuti (del 01/11/2012 @ 14:05:16, in .NET Framework, linkato 3115 volte)

Arriva in .NET Framework 4.5 la possibilità di scrivere codice molto più compatto nella gestione di codice asincrono grazie alle keyword async e await.

Questa novità sarà disponibile per C# 5.0 e per VB 11, dentro Visual Studio .NET 2012.

async void OpenWebPage() 
{
	WebClient client = new WebClient();
	string html = await client.DownloadStringTaskAsync(new Uri("http://www.tencas.com/blog"));
	this.content.Text = html; 
}

Prima invece eravate più o meno costretti a scrivere due funzioni e a ricorrere ad un handler per la gestione dell'evento asincrono. In realtà è la TPL (Task Parallel Library) a farsi carico dello sdoppiamento del corpo dell'unica funzione in due funzioni separate, ma meno codice si scrive e più tempo si ha per altre cose.

void OpenWebPage() 
{
	WebClient client = new WebClient();
	client.DownloadStringCompleted += client_DownloadStringCompleted; 
	client.DownloadStringAsync(new Uri("http://www.tencas.com/blog"));
}

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
	string html = e.Result;
	this.content.Text = html;
}
 
Pagine: 1


Ci sono  persone collegate

Tagcloud

Gare 2017
GARE 2017?
26/03: GF Tre Valli
30/04: GF del Durello
21/05: Passo Buole Extreme
28/05: Soave Bike
25/06: Lessinia Legend
Gare 2016
GARE 2016
26/06: 6H Valpolicella Fatta
27/08: GF d'Autunno Fatta
08/11: XCRunning Grezzana Fatta
Tickerkm
KM STORICI

Km fatti

Palmares
BREVETTI E CIRCUITI

2014: Salzkammergut Survivor
2012: Prestigio MTB
2011: Prestigio MTB
2010: Prestigio MTB, Fizik Veneto
2008: Garda Challenge

< agosto 2017 >
L
M
M
G
V
S
D
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
     
             

Cerca per parola chiave
 

Titolo
famiglia (4)
fotografia (1)
gastronomia (1)
MTB (14)
rally (2)
viaggi (12)

Le fotografie pių cliccate

Titolo
Quale circuito suggerisci al Marcante per il 2013?

 Lessinia Tour
 Prestigio MTB
 Nobili MTB
 Challenge Giordana
 Gare all'estero
 Stare a casa

Titolo

View Marco Tenuti's profile on LinkedIn

Listening
Kid Rock - Rock n Roll Jesus

Ghosts - The world is outside

Hellogoodbye - Zombies! Aliens! Vampires! Dinosaurs!

Reading
Fabio Volo - E' una vita che ti aspetto
Michael Guillen - Le 5 equazioni che hanno cambiato il mondo
Sophie Kinsella - I love shopping a New York

Watching
Mia moglie consiglia Le sorelle McLeod



Titolo
.NET Framework (4)
Abarth (13)
Alcenago (4)
auto (15)
consumatore (57)
cucina (18)
cultura (15)
dizionario (2)
famiglia (40)
finanza (4)
Grezzana (6)
hitech (17)
humour (8)
idee (1)
informatica (65)
iPhone (46)
mobile computing (10)
MTB (1198)
musica (4)
natura (23)
OS X (3)
PS3 (7)
rally (63)
salute (4)
social (4)
telefonia (3)
Verona (12)
viaggi (26)
video (7)
Visual Basic 6 (5)
web (49)
Windows (31)

Catalogati per mese:
Agosto 2017
Luglio 2017
Giugno 2017
Maggio 2017
Aprile 2017
Marzo 2017
Febbraio 2017
Gennaio 2017
Dicembre 2016
Novembre 2016
Ottobre 2016
Settembre 2016
Agosto 2016
Luglio 2016
Giugno 2016
Maggio 2016
Aprile 2016
Marzo 2016
Febbraio 2016
Gennaio 2016
Dicembre 2015
Novembre 2015
Ottobre 2015
Settembre 2015
Agosto 2015
Luglio 2015
Giugno 2015
Maggio 2015
Aprile 2015
Marzo 2015
Febbraio 2015
Gennaio 2015
Dicembre 2014
Novembre 2014
Ottobre 2014
Settembre 2014
Agosto 2014
Luglio 2014
Giugno 2014
Maggio 2014
Aprile 2014
Marzo 2014
Febbraio 2014
Gennaio 2014
Dicembre 2013
Novembre 2013
Ottobre 2013
Settembre 2013
Agosto 2013
Luglio 2013
Giugno 2013
Maggio 2013
Aprile 2013
Marzo 2013
Febbraio 2013
Gennaio 2013
Dicembre 2012
Novembre 2012
Ottobre 2012
Settembre 2012
Agosto 2012
Luglio 2012
Giugno 2012
Maggio 2012
Aprile 2012
Marzo 2012
Febbraio 2012
Gennaio 2012
Dicembre 2011
Novembre 2011
Ottobre 2011
Settembre 2011
Agosto 2011
Luglio 2011
Giugno 2011
Maggio 2011
Aprile 2011
Marzo 2011
Febbraio 2011
Gennaio 2011
Dicembre 2010
Novembre 2010
Ottobre 2010
Settembre 2010
Agosto 2010
Luglio 2010
Giugno 2010
Maggio 2010
Aprile 2010
Marzo 2010
Febbraio 2010
Gennaio 2010
Dicembre 2009
Novembre 2009
Ottobre 2009
Settembre 2009
Agosto 2009
Luglio 2009
Giugno 2009
Maggio 2009
Aprile 2009
Marzo 2009
Febbraio 2009
Gennaio 2009
Dicembre 2008
Novembre 2008
Ottobre 2008
Settembre 2008
Agosto 2008
Luglio 2008
Giugno 2008
Maggio 2008
Aprile 2008
Marzo 2008
Febbraio 2008
Gennaio 2008
Dicembre 2007
Novembre 2007
Ottobre 2007
Settembre 2007
Agosto 2007
Luglio 2007
Giugno 2007
Maggio 2007
Aprile 2007
Marzo 2007
Febbraio 2007
Gennaio 2007
Dicembre 2006
Novembre 2006
Ottobre 2006
Settembre 2006
Agosto 2006
Luglio 2006
Giugno 2006
Maggio 2006
Aprile 2006
Marzo 2006
Febbraio 2006
Gennaio 2006
Dicembre 2005
Novembre 2005
Ottobre 2005
Settembre 2005
Agosto 2005
Luglio 2005
Giugno 2005
Maggio 2005
Aprile 2005
Marzo 2005
Febbraio 2005
Gennaio 2005
Dicembre 2004

Gli interventi pių cliccati

Ultimi commenti:
First Way (My Advice...
02/07/2017 @ 20:00:27
Di francesco
č successo anche a m...
02/07/2017 @ 19:46:14
Di francesco
maldestro tentativo ...
26/06/2017 @ 16:30:05
Di alep
ZPETS
22/04/2017 @ 00:54:54
Di Floy
A me hanno telefonat...
18/04/2017 @ 11:23:01
Di Armando
Grazie mille, l'unic...
09/04/2017 @ 22:44:57
Di Denny
Non chiamate pių
29/03/2017 @ 09:23:42
Di Almickey
Succede anche al mio...
18/03/2017 @ 16:11:11
Di Fabio


21/08/2017 @ 02:48:18
script eseguito in 93 ms